Tips Menghemat Resource Server WordPress Anda

Ceritanya begini, beberapa hari yang lalu saya mendapat pengalaman berharga dimana salah satu situs yang saya buat ber-basis wordpress load process nya sangat tinggi, begitu saya lihat process mysql untuk memproses tiap halaman sangat besar sekitar 100an mysql query. Wal hasil ram pada server saya langsung mentok ga tersisa..

Wah kalau seandainya saya taruh situs ini di shared hosting bisa-bisa langsung di sumpahin ama yang punya server dan langsung di suspend kali ya? huehuhe.. maka dari itu saya mencoba untuk mengurangi beberapa proses query mysql yang kira2 tidak sering di update seperti last post..

Sistemnya begini, saya buat script tambahan yang fungsinya untuk me-retrieve postingan terakhir dan nantinya saya masukkan ke sebuah file text yang sudah di modifikasi hak aksesnya supaya bisa write.. dengan format 777. Contoh scriptnya phpnya seperti ini :

<? require(“wp-blog-header.php”); ?>

<?
// Get random posts from the $categoryId
$postSQL =  “SELECT
$wpdb->posts.ID,
$wpdb->posts.post_title, $wpdb->posts.last_access, $wpdb->posts.view_song”;

$postSQL    .=    ” FROM $wpdb->posts WHERE $wpdb->posts.post_status = ‘publish’ and $wpdb->posts.post_type=’post’”;

//    Order the posts randomly
$postSQL    .=    ” ORDER BY $wpdb->posts.ID DESC LIMT 10″;

//    Get the results
$articles    =    $wpdb->get_results($postSQL);

if ( $articles ) {
//    Display the post titles with permalinks

$fp = fopen (“postinganterakhir.txt”,”w”);
//fwrite ($fp, “<ul>”);
$i=1;
$rubah=0;
fwrite($fp,’<ul>’);
foreach ( $articles as $display ) {
$listTitle=str_replace(“&”,”",$display->post_title);
$judul=str_replace(“&”,”&amp;”,$display->post_title);
fwrite($fp,’<li>’);
fwrite ($fp, ‘<a href=”‘ . post_permalink($display->ID) . ‘” title=”‘ . $listTitle . ‘”>’ . $judul . ‘</a>’);
fwrite($fp,’</li>’);
//fwrite ($fp, “</li>”);
$i++;
}
//fwrite ($fp, “</ul>”);
fwrite($fp,’</ul>’);
fclose ($fp);
}
?>

Nanti script ini saya taruh di cron job di cpanel saya supaya di eksekusi setiap hari misalnya. Setelah itu bagaimana caranya untuk mengambil isi dari file text untuk di tampilkan di website kita?

Anda bisa memakai sintak seperti di bawah ini :

<? function loadpostinganterakhir(){

$handle = fopen(“http://namadomainanda.com/postinganterakhir.txt”, “r”); //asumsi anda menaruh file text di bawah direktori root domain anda.
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 10000);
echo $buffer;
}
}
fclose($handle);

} //end of loadpostinganterakhir function ?>

Anda bisa taruh function ini di functions.php yang berada didalam satu direktori dengan theme wordpress anda dan nanti di sidebar anda tinggal panggil nama function tersebut dengan syntax :

<? loadpostinganterakhir(); ?>

Dan wal hasil banyak penurunan jumlah proses mysql di setiap halaman yang di load.. coba bayangin semisal trafik anda ratusan mungkin itu kurang bermanfaat.. akan tetapi seandainya trafik situs anda sudah bilangan ribuan atau bahkan puluhan ribu dan ratusan ribu.. banyak sekali hal-hal yang harus kita pikirkan supaya kinerja server kita tidak terganggu dengan adanya pemanggilan script yang berlebihan. Anda bisa ber kreasi dengan fungsi-fungsi wordpress yang lain seperti misalnya me load kategori, komentar terakhir, komentar terbanyak dan lainnya.

Ada baiknya kita mempelajari terlebih dahulu struktur database dari wordpress tersebut supaya kita bisa lebih mudah untuk memodifikasi query sintak mysql.

Selamat ber kreasi :)

About The Author

Number of Entries : 212

Comments (41)

Leave a Comment