Optimasi database hampir selalu memberi hasil lebih besar daripada menaikkan spesifikasi server, karena penyebab lambatnya jarang berupa kekurangan tenaga. Yang terjadi biasanya sederhana: pekerjaan yang sama diulang terus-menerus, atau data dicari tanpa petunjuk arah.
Ukur Dulu: Cari Kueri yang Lambat
Tanpa mengetahui kueri mana yang berat, setiap perubahan hanya tebakan. Yang perlu dikumpulkan lebih dulu:
- Catatan kueri lambat. Sebagian besar basis data bisa mencatat kueri yang melebihi ambang waktu tertentu. Ini daftar kerja Anda.
- Halaman mana yang paling lambat. Sering hanya satu atau dua halaman yang bermasalah, bukan seluruh situs.
- Jumlah kueri per halaman. Pada WordPress, plugin diagnostik bisa menampilkannya. Angka yang jauh di atas wajar biasanya menunjuk ke satu plugin tertentu.
Indeks: Perbaikan dengan Dampak Terbesar
Tanpa indeks, basis data memeriksa seluruh isi tabel untuk menemukan satu baris — dan biaya itu naik seiring bertambahnya data.
Indeks bekerja seperti daftar isi: alih-alih membaca seluruh buku, basis data langsung menuju halaman yang tepat. Yang perlu diketahui:
- Beri indeks pada kolom yang sering dipakai untuk menyaring dan mengurutkan. Bukan pada semua kolom.
- Indeks tidak gratis. Setiap penambahan dan perubahan data menuntut pembaruan indeks juga. Terlalu banyak indeks memperlambat penulisan.
- Periksa rencana eksekusi kueri. Perintah bawaan basis data bisa menunjukkan apakah indeks benar-benar dipakai atau justru diabaikan.
Cache: Jangan Kerjakan Ulang Hasil yang Sama
Kueri tercepat adalah kueri yang tidak perlu dijalankan sama sekali.
- Cache halaman. Halaman yang isinya sama untuk semua pengunjung disajikan langsung tanpa menyentuh basis data. Ini lapisan dengan dampak terbesar untuk situs berbasis konten.
- Cache objek. Hasil kueri yang sering diminta disimpan di memori memakai Redis atau Memcached. Paling terasa pada situs dengan banyak bagian dinamis yang tidak bisa di-cache seluruh halamannya.
- Cache di dalam basis data. Sebagian konfigurasi menyimpan data yang sering dibaca di memori. Ini yang membuat penambahan RAM kadang membantu — tetapi hanya kalau memori memang penghambatnya.
Bersihkan Data yang Menumpuk
Pada situs WordPress yang sudah berjalan bertahun-tahun, sebagian besar isi tabel sering berupa data yang tidak pernah dibaca lagi.
Yang paling sering menumpuk:
- Revisi naskah. Setiap penyuntingan menyimpan salinan baru. Jumlahnya bisa berlipat dari jumlah artikel sebenarnya.
- Komentar spam dan sampah yang tidak pernah dikosongkan.
- Data sisa plugin yang sudah dihapus. Menghapus plugin sering tidak menghapus tabel dan pengaturan yang dibuatnya.
- Data sementara kedaluwarsa yang seharusnya terhapus otomatis tetapi tertinggal.
Buat cadangan sebelum membersihkan apa pun. Pembersihan yang salah sasaran tidak bisa dibatalkan.
Penyetelan di Sisi Server
Bagian ini hanya berlaku kalau Anda mengelola VPS sendiri; di shared hosting konfigurasi basis data dipegang penyedia.
- Alokasi memori untuk penyangga data. Ini pengaturan tunggal yang paling berpengaruh pada basis data relasional. Terlalu kecil membuat data dibaca ulang dari penyimpanan; terlalu besar membuat server kehabisan memori.
- Batas jumlah koneksi. Terlalu tinggi berarti memori habis saat lonjakan; terlalu rendah berarti permintaan ditolak.
- Jenis penyimpanan. Basis data sangat terpengaruh kecepatan baca-tulis. Penyimpanan berbasis NVMe memberi selisih yang nyata dibanding cakram putar.
Setiap perubahan konfigurasi perlu diuji satu per satu, bukan sekaligus — kalau tidak, Anda tidak akan tahu mana yang berpengaruh.
Urutan Pengerjaan
Kerjakan dari yang paling murah dan paling berdampak:
- Aktifkan cache halaman.
- Bersihkan data sampah.
- Cari dan perbaiki kueri lambat, biasanya lewat indeks.
- Aktifkan cache objek bila situs banyak bagian dinamisnya.
- Setel konfigurasi basis data, kalau punya aksesnya.
- Baru pertimbangkan menaikkan kapasitas server.
Urutan ini sengaja sejalan dengan cara meningkatkan kinerja server: menambah tenaga selalu menjadi langkah terakhir, bukan yang pertama.
Pertanyaan yang Sering Diajukan
Apakah membersihkan database aman? Aman kalau Anda tahu apa yang dihapus dan sudah membuat cadangan. Membatasi jumlah revisi naskah dan mengosongkan komentar spam termasuk yang paling aman; menghapus tabel sisa plugin menuntut kepastian bahwa plugin itu memang tidak dipakai lagi.
Apakah plugin optimasi database cukup? Untuk pembersihan data sampah, cukup. Untuk kueri lambat dan indeks, tidak — itu memerlukan pemeriksaan kueri yang tidak bisa ditebak plugin.
Kenapa situs saya lambat padahal database sudah dibersihkan? Kemungkinan besar penyebabnya bukan di database. Periksa ukuran gambar, cache, jumlah plugin, dan versi PHP — empat penyebab yang paling sering, dan tidak satu pun berhubungan dengan basis data.
Seberapa sering database perlu dibersihkan? Untuk situs yang aktif diperbarui, beberapa bulan sekali sudah memadai. Yang lebih berguna adalah mencegah penumpukan sejak awal, misalnya dengan membatasi jumlah revisi yang disimpan.