MySQL di WordPress Terlalu Besar, Ini Solusinya; Studi Kasus Website Berita (Bagian 1)

Tuesday, November 10th, 2015 7:11 pm

Sebelum Tulisan Dimulai…
Ada seorang klien saya yang menjalankan situs web berita (online dan cetak), media online tentu saja memakai CMS sejuta umat: WordPress :- D. Saat ini wartawan mereka dibilang sangat produktif. Dalam satu tahun, bisa sampai 25.000-35.000 posting (artinya 70-100 posting perhari, wuih).

Nah, media online ini dimulai dari tahun 2013, kalau kita ambil nilai terkecil, artinya 3 tahun x 25.000 = 75000 posting sudah.

Tentu ini menyebabkan masalah, setelah didepak dari shared-hosting, juga sudah dilakukan berpindah-pindah VPS. Untuk membeli Dedicated Server, sepertinya mereka belum sanggup.

Tulisan Sesudah Sebelum Tulisan Dimulai…
Solusinya sudah banyak dilakukan, salah satunya memakai plugin cache, bahkan yang berbayar. Memang plugin cache ini sangat membantu, sehingga tidak banyak terjadi kueri di MySQL.

Tapi yang jadi masalah adalah saat terjadi flush cache/clear cache, ini menyebabkan MySQL kerja terlalu tinggi.

Solusi selanjutnya? Yang paling terpikir dari saya adalah: dibanding memaksakan diri semua posting di dalam satu database, kenapa tidak dibagi-bagi? Jadi, menurut pendapat saya: Berita lama tentu jarang ada yang mengakses, kenapa tidak kita buat saja website khusus arsip lama?

Jadi, langkah yang saya terapkan:

  1. Buat subdomain, terserah namanya apa, dalam kasus ini saya buat tahun arsip saja. Jadi dibuatlah subdomain 2013.namadomainklien.com, lalu 2014.namadomainklien.com. Untuk yang tahun berjalan (2015), tidak perlu.
  2. Backup berkas dan database, lalu restore di subdomain tsb.
  3. Nah, di sini permainan database dimulai, hehe.. untuk yang arsip tahun 2013, saya mencoba menghapus semua posting yang tidak bertahun 2013. Jadi, di PhpMyAdmin saya tinggal masukkan query SQL:

    query di atas akan menghapus semua row di tabel yang bertanggal lebih dari 31 Desember 2013, dan dengan tipe posting: post (ini penting, jangan sampai kamu juga menghapus posting dengan tipe page maupun attachment agar struktur di website tetap terjaga).
  4. Jika sudah, lakukan “pembersihan” di tabel wp_term_relationships juga wp_postmeta agar menghilangkan row yang tidak berguna. Berikut query sql nya:

    lalu query ini:

     
  5. Jika sudah lakukan optimize table, ke struktur tabel di database, lalu cek saja semua tabel, lalu pilih optimize table.

    Optimize Table di PhpMyAdmin

    Optimize Table di PhpMyAdmin

  6. Jika sudah, jangan lupa untuk mengubah URL dari namadomainklien.com ke 2015.namadomainklien.com, cara paling mudah dan efektif menurut saya adalah mengubah berkas wp-config.php dan menambahkan:

    ubah URL website

    ubah URL website

  7. Jika sudah, maka ubah semua URL di baik di ini posting maupun di guid ke arah domain baru:

     

Tulisan Sesudah Tulisan…
Sekian dulu, lanjut di posting bagian 2, seting berkas .htaccess agar redirect ke website arsip. Lalu seting juga plugin cache agar tidak memberatkan MySQL kembali.

Update 14 November 2015: MySQL di WordPress Terlalu Besar, Ini Solusinya; Studi Kasus Website Berita (Bagian 2)


suka dengan tulisan saya? silakan juga mem-follow twitter saya

butuh web-developer/web programmer? silakan kontak saya agar saya memberikan solusi untuk Anda. Portfolio saya bisa dicek di Limosin Creative Studio


Category: Tutorial, WordPress

Label: , ,



2 Responses to MySQL di WordPress Terlalu Besar, Ini Solusinya; Studi Kasus Website Berita (Bagian 1)

  1. Ahmadali says:

    good post

  2. Ahmadali says:

    good post

  3. Ahmadali says:

    good post

  4. Ahmadali says:

    good post

  5. Ahmadali says:

    good post

  6. Ahmadali says:

    good post

Leave a Reply

Your email address will not be published. Required fields are marked *

  • Stuff

    • wongkito.net

      KombatHost.com

    • Langganan Blog ini via Email

      Enter your email address to subscribe to this blog and receive notifications of new posts by email.

close
sila dibaca blog saya yang lain