Cara Mengoptimalkan Database MySQL di Hosting Agar Website Lebih Cepat

Joko Warino

Cara Mengoptimalkan Database MySQL Melalui cPanel Hosting

Database MySQL merupakan salah satu komponen penting dalam website dinamis, termasuk website berbasis WordPress. Semakin lama website digunakan, jumlah data di dalam database biasanya akan terus bertambah.

Artikel, komentar, revisi, metadata, konfigurasi plugin, log, transient, hingga data sementara dapat membuat ukuran database semakin besar.

Database yang besar tidak otomatis berarti website akan lambat. Namun, database yang tidak dikelola dengan baik dapat membuat proses pencarian dan pengolahan data menjadi kurang efisien, terutama ketika website memiliki banyak tabel, data, dan query yang harus diproses.

Kabar baiknya, sebagian besar pemeriksaan dan optimasi database MySQL dapat dilakukan langsung melalui cPanel dan phpMyAdmin. Anda tidak selalu harus berpindah ke VPS atau menggunakan server dengan spesifikasi lebih tinggi hanya karena database mulai membesar.

Sebelum melakukan perubahan, pastikan Anda mengetahui terlebih dahulu database mana yang digunakan website, tabel mana yang paling besar, data apa yang sudah tidak diperlukan, serta query mana yang berpotensi tidak efisien.

Cara Mengoptimalkan Database MySQL

Berikut 15 cara penting untuk mengoptimalkan database MySQL melalui cPanel hosting.

1. Backup Database Sebelum Melakukan Optimasi

Hal pertama yang wajib dilakukan sebelum mengoptimalkan database adalah membuat backup.

Langkah ini sangat penting karena beberapa tindakan optimasi melibatkan penghapusan data atau perubahan struktur tabel.

Jika terjadi kesalahan, backup dapat digunakan untuk mengembalikan database ke kondisi sebelumnya.

Jangan langsung menjalankan query seperti DELETE sebelum memastikan bahwa Anda memiliki salinan database yang aman.

Cara backup database melalui cPanel

  1. Login ke cPanel hosting.
  2. Cari bagian Files.
  3. Pilih Backup atau Backup Wizard.
  4. Cari bagian backup database MySQL.
  5. Pilih database yang digunakan website.
  6. Download backup database.
  7. Simpan file tersebut di komputer atau lokasi penyimpanan lain yang aman.

Cara backup melalui phpMyAdmin

  1. Login ke cPanel.
  2. Buka phpMyAdmin.
  3. Pilih database website.
  4. Klik menu Export.
  5. Pilih metode Quick.
  6. Pilih format SQL.
  7. Klik Export atau Go.
  8. Simpan file .sql.

Cara backup melalui phpMyAdmin

Jangan melewati proses backup hanya karena optimasi yang akan dilakukan terlihat sederhana. Kesalahan memilih tabel atau menjalankan query SQL dapat menyebabkan data website bermasalah.

2. Pastikan Database yang Digunakan Website Sudah Benar

Setelah mempunyai backup, langkah berikutnya adalah memastikan database yang akan dioptimalkan memang merupakan database yang digunakan website.

Ini sangat penting apabila satu akun hosting memiliki beberapa website atau beberapa database.

Pada WordPress, nama database dapat diketahui melalui file wp-config.php.

Cara mengetahui database WordPress

  1. Login ke cPanel.
  2. Buka File Manager.
  3. Masuk ke folder instalasi WordPress, biasanya public_html.
  4. Cari file wp-config.php.
  5. Klik kanan file tersebut.
  6. Pilih Edit.
  7. Cari baris:
define( 'DB_NAME', 'nama_database' );

Sebagai contoh:

define( 'DB_NAME', 'username_wp123' );

Artinya database yang digunakan WordPress adalah username_wp123.

Jangan mengubah isi wp-config.php apabila Anda hanya ingin mengetahui nama database. Cukup catat namanya kemudian buka database tersebut melalui phpMyAdmin.

Cara mengetahui database WordPress

3. Buka Database Melalui phpMyAdmin

Sebagian besar proses optimasi database MySQL pada shared hosting dapat dilakukan melalui phpMyAdmin.

Melalui phpMyAdmin, Anda dapat melihat tabel, jumlah data, ukuran tabel, overhead, storage engine, index, serta menjalankan query SQL.

Cara membuka database

  1. Login ke cPanel.
  2. Cari bagian Databases.
  3. Klik phpMyAdmin.
  4. Tunggu sampai phpMyAdmin terbuka.
  5. Cari database website pada panel sebelah kiri.
  6. Klik nama database tersebut.

Jika menggunakan WordPress, Anda mungkin melihat tabel seperti:

wp_posts
wp_postmeta
wp_options
wp_users
wp_usermeta
wp_terms
wp_termmeta
wp_comments
wp_commentmeta

Namun, jangan menganggap semua WordPress menggunakan prefix wp_.

Contohnya, sebuah website dapat menggunakan:

abc_posts
abc_postmeta
abc_options

Karena itu, selalu periksa nama tabel sebenarnya sebelum menjalankan query SQL.

4. Periksa Ukuran Setiap Tabel

Jangan langsung menghapus data ketika database terasa besar.

Langkah yang lebih aman adalah mencari tahu tabel mana yang menggunakan ruang paling besar.

Di phpMyAdmin, biasanya tersedia informasi seperti:

  • Rows;
  • Type;
  • Collation;
  • Size;
  • Overhead.

Kolom Size dapat membantu Anda mengetahui tabel mana yang paling banyak menggunakan ruang.

Cara memeriksa ukuran tabel

  1. Buka database di phpMyAdmin.
  2. Lihat seluruh daftar tabel.
  3. Perhatikan kolom Size.
  4. Urutkan berdasarkan ukuran jika tersedia.
  5. Catat beberapa tabel terbesar.
  6. Prioritaskan pemeriksaan pada tabel tersebut.

Contoh:

TabelUkuranPrioritas Pemeriksaan
wp_posts15 MBSedang
wp_postmeta80 MBTinggi
wp_options12 MBSedang
wp_comments20 MBSedang

Dalam contoh tersebut, wp_postmeta memiliki ukuran paling besar sehingga perlu diperiksa lebih lanjut.

Cara memeriksa ukuran tabel

Namun, tabel besar tidak selalu bermasalah. Tabel tersebut bisa saja memang menyimpan data penting yang dibutuhkan website.

Tujuan pemeriksaan ini adalah menemukan penyebab database membesar, bukan sekadar mencari tabel terbesar.

5. Periksa Overhead pada Tabel

Selain Size, perhatikan juga bagian Overhead.

Overhead dapat muncul setelah tabel mengalami banyak aktivitas seperti:

  • INSERT;
  • UPDATE;
  • DELETE.

Karena itu, tabel yang sering mengalami perubahan data perlu diperiksa secara berkala.

Cara memeriksa dan mengoptimalkan overhead

  1. Buka database melalui phpMyAdmin.
  2. Lihat daftar tabel.
  3. Perhatikan kolom Overhead.
  4. Identifikasi tabel yang memiliki overhead.
  5. Pilih tabel yang memang perlu dioptimalkan.
  6. Klik With selected.
  7. Pilih Optimize table.
  8. Tunggu proses selesai.

Cara memeriksa dan mengoptimalkan overhead

Jangan beranggapan semua tabel harus selalu dioptimalkan. Fokuskan tindakan pada tabel yang memang membutuhkan.

6. Gunakan OPTIMIZE TABLE pada Tabel yang Membutuhkan

Selain melalui menu phpMyAdmin, Anda dapat menggunakan perintah SQL OPTIMIZE TABLE.

Contohnya:

OPTIMIZE TABLE wp_posts;

Atau:

OPTIMIZE TABLE wp_postmeta;

Beberapa tabel juga dapat diproses sekaligus:

OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options;

Cara menjalankan OPTIMIZE TABLE

  1. Buka phpMyAdmin.
  2. Pilih database.
  3. Klik tab SQL.
  4. Masukkan query.
  5. Periksa kembali nama tabel.
  6. Klik Go.
  7. Tunggu proses selesai.
  8. Periksa hasil yang ditampilkan.

Jangan menjalankan optimasi terhadap seluruh database secara membabi buta.

Jika menggunakan shared hosting dengan resource terbatas, proses optimasi yang cukup berat sebaiknya dilakukan ketika trafik website tidak terlalu tinggi.

7. Periksa Storage Engine Tabel

Storage engine merupakan bagian penting dari struktur tabel MySQL.

Salah satu storage engine yang umum digunakan pada website modern adalah InnoDB.

Sebelum mengubah storage engine, periksa terlebih dahulu kondisi tabel yang ada.

Cara mengecek storage engine

  1. Buka phpMyAdmin.
  2. Pilih database.
  3. Perhatikan daftar tabel.
  4. Lihat kolom Type.
  5. Catat storage engine masing-masing tabel.

Jika website sudah berjalan dengan baik menggunakan InnoDB, jangan mengubahnya hanya karena ingin melakukan optimasi.

Perubahan storage engine merupakan tindakan teknis yang sebaiknya dilakukan jika memang ada alasan yang jelas dan Anda memahami dampaknya terhadap aplikasi.

8. Bersihkan Data yang Sudah Tidak Diperlukan

Salah satu cara paling efektif untuk mengendalikan pertumbuhan database adalah membersihkan data yang memang sudah tidak diperlukan.

Pada website WordPress, beberapa jenis data yang perlu diperiksa antara lain:

  • Komentar spam;
  • Revisi artikel;
  • Transient;
  • Log plugin;
  • Session;
  • Cache;
  • Data statistik;
  • Data import;
  • Data sementara;
  • Tabel plugin yang sudah tidak digunakan.

Hal yang paling penting adalah jangan menghapus data hanya karena ukurannya besar.

Cara membersihkan database dengan aman :

  1. Identifikasi data yang ingin dibersihkan.
  2. Cari tahu fungsi data tersebut.
  3. Pastikan data benar-benar tidak diperlukan.
  4. Buat backup.
  5. Gunakan query dengan kondisi WHERE jika harus menghapus data.
  6. Periksa kembali tabel setelah penghapusan.
  7. Optimalkan tabel apabila memang diperlukan.

Artikel tentang cara mengurangi penggunaan resource hosting juga membahas database sebagai salah satu komponen yang perlu diperhatikan ketika penggunaan resource website meningkat.

9. Bersihkan Post Revision pada WordPress

Jika database digunakan oleh WordPress, salah satu data yang perlu diperiksa adalah post revision.

Revision merupakan riwayat perubahan artikel. Website yang sering melakukan pengeditan dapat mempunyai jumlah revision yang sangat banyak.

Cara mengecek jumlah revision

Buka:

phpMyAdmin → Database → SQL

Kemudian jalankan:

SELECT COUNT(*)
FROM wp_posts
WHERE post_type = 'revision';

Query tersebut digunakan untuk mengetahui jumlah revision.

Jika jumlah revision sangat banyak dan Anda sudah mempunyai backup, data revision dapat dibersihkan.

Contohnya:

DELETE FROM wp_posts
WHERE post_type = 'revision';

Jika prefix tabel Anda bukan wp_, sesuaikan nama tabel.

Misalnya:

DELETE FROM abc_posts
WHERE post_type = 'revision';

Setelah penghapusan data dalam jumlah besar, tabel dapat diperiksa kembali.

Jika memang diperlukan:

OPTIMIZE TABLE wp_posts;

Cara mengecek jumlah revision

Peringatan: jangan menjalankan query DELETE apabila belum memahami data yang akan dihapus.

10. Hapus Komentar Spam dan Metadata yang Tidak Terpakai

Komentar spam juga dapat membuat database bertambah besar, terutama pada website yang menerima banyak komentar.

Sebelum menghapusnya, Anda dapat menghitung jumlah komentar yang berstatus spam.

Cara mengecek komentar spam

Buka:

phpMyAdmin → Database → SQL

Kemudian jalankan:

SELECT COUNT(*)
FROM wp_comments
WHERE comment_approved = 'spam';

Jika jumlahnya banyak dan komentar tersebut memang tidak diperlukan, Anda dapat menghapusnya:

DELETE FROM wp_comments
WHERE comment_approved = 'spam';

Metadata komentar yang tidak lagi memiliki pasangan juga dapat diperiksa.

Contohnya:

DELETE cm
FROM wp_commentmeta cm
LEFT JOIN wp_comments c
ON cm.comment_id = c.comment_ID
WHERE c.comment_ID IS NULL;

Pastikan backup sudah tersedia sebelum menjalankan query DELETE.

Jika prefix tabel berbeda, sesuaikan nama tabel pada query.

11. Periksa dan Bersihkan Data pada wp_options

Tabel wp_options perlu mendapatkan perhatian khusus pada website WordPress.

Tabel ini menyimpan berbagai pengaturan website, termasuk data yang berhubungan dengan plugin dan transient.

Masalah dapat muncul ketika terdapat option yang sangat besar atau terlalu banyak data yang dimuat secara otomatis.

Cara mencari option terbesar

Buka:

phpMyAdmin → Database → SQL

Kemudian jalankan:

SELECT option_name, LENGTH(option_value) AS size
FROM wp_options
ORDER BY size DESC
LIMIT 20;

Query tersebut akan menampilkan 20 option dengan ukuran terbesar.

Anda juga dapat memeriksa option yang menggunakan autoload:

SELECT option_name, LENGTH(option_value) AS size
FROM wp_options
WHERE autoload = 'yes'
ORDER BY size DESC
LIMIT 20;

Setelah menemukan option yang besar, jangan langsung menghapusnya.

Cari tahu terlebih dahulu plugin atau fitur yang membuat option tersebut.

Data pada wp_options dapat berisi konfigurasi penting. Penghapusan secara sembarangan dapat menyebabkan plugin atau fungsi website mengalami masalah.

12. Periksa Tabel Plugin yang Sudah Tidak Digunakan

Menghapus plugin dari dashboard WordPress tidak selalu berarti seluruh data yang dibuat plugin tersebut ikut hilang.

Dalam kondisi tertentu, plugin dapat meninggalkan tabel atau data di database.

Data tersebut kemudian terus menggunakan ruang penyimpanan.

Cara memeriksa tabel plugin lama

  1. Buka database melalui phpMyAdmin.
  2. Periksa daftar seluruh tabel.
  3. Cari tabel yang berkaitan dengan plugin.
  4. Pastikan plugin tersebut sudah tidak digunakan.
  5. Baca dokumentasi plugin mengenai proses uninstall.
  6. Buat backup database.
  7. Hapus tabel hanya jika benar-benar yakin.

Jangan menghapus tabel hanya berdasarkan namanya.

Pastikan terlebih dahulu bahwa tabel tersebut memang tidak lagi dibutuhkan oleh website.

Cara memeriksa tabel plugin lama

13. Periksa Index dan Tambahkan Index yang Dibutuhkan

Ukuran database bukan satu-satunya faktor yang menentukan performa.

Index juga sangat penting karena dapat membantu MySQL menemukan data dengan lebih efisien ketika query melakukan pencarian berdasarkan kolom tertentu.

Cara memeriksa index

  1. Buka phpMyAdmin.
  2. Pilih database.
  3. Klik tabel yang ingin diperiksa.
  4. Pilih tab Structure.
  5. Scroll ke bagian Indexes.
  6. Periksa index yang tersedia.

Biasanya Anda dapat menemukan:

PRIMARY
UNIQUE
INDEX

Namun, jangan berpikir bahwa semakin banyak index berarti semakin cepat database.

Index juga membutuhkan ruang dan dapat menambah pekerjaan ketika data dimasukkan atau diperbarui.

Misalnya terdapat query:

SELECT *
FROM customers
WHERE email = 'contoh@email.com';

Jika email sering digunakan untuk pencarian, index dapat dipertimbangkan:

CREATE INDEX idx_email
ON customers(email);

Sebelum menambahkan index, sebaiknya analisis terlebih dahulu query yang bersangkutan menggunakan EXPLAIN.

14. Gunakan EXPLAIN untuk Menemukan Query yang Tidak Efisien

Database besar bukan satu-satunya penyebab website lambat.

Query yang tidak efisien juga dapat membuat MySQL bekerja lebih keras.

Salah satu cara untuk mengetahui bagaimana MySQL menjalankan sebuah query adalah menggunakan EXPLAIN.

Misalnya:

SELECT *
FROM orders
WHERE customer_id = 100;

Tambahkan EXPLAIN:

EXPLAIN
SELECT *
FROM orders
WHERE customer_id = 100;

Perhatikan informasi seperti:

  • type;
  • possible_keys;
  • key;
  • rows;
  • Extra.

Salah satu hal yang perlu diperhatikan adalah jumlah baris yang harus dibaca MySQL.

Jika query hanya membutuhkan sedikit data tetapi database harus membaca jumlah baris yang sangat besar, query tersebut mungkin perlu dioptimalkan.

Hindari mengambil data yang tidak diperlukan

Daripada:

SELECT *
FROM wp_posts;

lebih baik tentukan kolom yang memang diperlukan:

SELECT ID, post_title, post_date
FROM wp_posts;

Jika hanya membutuhkan sejumlah data tertentu, gunakan LIMIT:

SELECT ID, post_title
FROM wp_posts
LIMIT 20;

Pendekatan tersebut dapat membantu mengurangi jumlah data yang diproses dan dikirim oleh database.

Hindari mengambil data yang tidak diperlukan

15. Periksa Kembali Database Setelah Optimasi

Setelah semua proses selesai, jangan langsung menganggap database sudah optimal.

Lakukan pemeriksaan ulang untuk mengetahui apakah perubahan yang dilakukan benar-benar memberikan hasil.

Cara mengecek hasil optimasi :

  1. Buka phpMyAdmin.
  2. Pilih database.
  3. Periksa ukuran setiap tabel.
  4. Perhatikan kembali kolom Size.
  5. Periksa Overhead.
  6. Bandingkan dengan kondisi sebelum optimasi.
  7. Pastikan website tetap berjalan normal.
  8. Periksa waktu loading halaman.
  9. Jika tersedia, lihat penggunaan CPU dan RAM hosting.
  10. Periksa kembali query yang sebelumnya bermasalah.

Sebagai contoh, misalnya sebelum optimasi database berukuran:

850 MB

Setelah pembersihan menjadi:

620 MB

Maka penggunaan ruang berkurang sekitar:

230 MB

Namun, jangan menjadikan ukuran database sebagai satu-satunya indikator keberhasilan.

Database kecil belum tentu cepat, sedangkan database besar belum tentu lambat.

Performa website juga dipengaruhi oleh query aplikasi, index, PHP, plugin, theme, caching, CPU, RAM, disk I/O, database connections, PHP workers, dan resource hosting lainnya.

Berapa Sering Database MySQL Perlu Dioptimalkan?

Tidak ada jadwal yang wajib berlaku untuk semua website.

Frekuensi pemeriksaan sebaiknya disesuaikan dengan aktivitas website.

Website yang hanya memiliki sedikit konten dan jarang menerima komentar mungkin tidak membutuhkan pemeriksaan terlalu sering.

Sebaliknya, website dengan banyak artikel, komentar, transaksi, aktivitas pengguna, plugin, log, atau data otomatis perlu mendapatkan perhatian lebih rutin.

Yang lebih penting daripada melakukan OPTIMIZE TABLE secara rutin tanpa alasan adalah memantau pertumbuhan database dan mengetahui penyebabnya.

Jika ukuran database terus bertambah, cari tahu tabel atau jenis data apa yang menyebabkan pertumbuhan tersebut.

Kapan Database Besar Mulai Menjadi Masalah?

Tidak ada angka tunggal yang dapat digunakan sebagai batas bahwa sebuah database sudah terlalu besar.

Database berukuran ratusan MB belum tentu menjadi masalah bagi satu website, sementara database yang jauh lebih kecil dapat tetap menghasilkan query yang lambat jika struktur atau query-nya tidak efisien.

Karena itu, jangan hanya melihat ukuran database.

Perhatikan juga:

  • Waktu eksekusi query;
  • Jumlah rows yang dibaca;
  • Penggunaan CPU;
  • Penggunaan RAM;
  • Disk I/O;
  • Jumlah koneksi database;
  • PHP Workers;
  • Entry Processes;
  • Waktu loading halaman;
  • Ukuran tabel;
  • Overhead;
  • Pertumbuhan database dari waktu ke waktu.

Jika hosting mulai mendekati batas resource, pemeriksaan database sebaiknya dilakukan bersamaan dengan pemeriksaan penggunaan resource hosting.

Apakah Harus Upgrade Hosting Jika Database Besar?

Belum tentu.

Sebelum upgrade hosting, cari tahu terlebih dahulu penyebab website lambat.

Jika masalah berasal dari data yang tidak diperlukan, query yang buruk, index yang tidak sesuai, atau konfigurasi aplikasi, upgrade hosting belum tentu menyelesaikan akar masalah.

Sebaliknya, apabila optimasi database dan aplikasi sudah dilakukan tetapi resource tetap sering mencapai batas, mungkin memang sudah waktunya mempertimbangkan hosting dengan resource lebih besar.

Dalam memilih hosting, jangan hanya memperhatikan kapasitas penyimpanan. CPU, RAM, database, PHP workers, I/O, dan resource lainnya juga perlu diperhatikan.

Artikel Jangan Asal Beli Ini Cara Memilih Hosting yang Tepat untuk Website membahas beberapa aspek yang perlu diperiksa sebelum memilih layanan hosting.

Kesimpulan

Mengoptimalkan database MySQL melalui cPanel tidak harus dilakukan dengan tindakan ekstrem.

Langkah yang paling aman adalah backup database terlebih dahulu, memastikan database yang benar, memeriksa ukuran tabel, mengecek overhead, mengidentifikasi data yang tidak diperlukan, membersihkan data secara selektif, memeriksa index, menganalisis query menggunakan EXPLAIN, kemudian mengoptimalkan tabel yang memang membutuhkan.

Pada website WordPress, beberapa bagian yang layak mendapatkan perhatian antara lain wp_posts, wp_postmeta, wp_options, wp_comments, revision, komentar spam, transient, serta tabel yang ditinggalkan plugin.

Namun, satu prinsip harus selalu diingat:

Jangan menghapus database atau tabel hanya karena ukurannya besar. Cari tahu terlebih dahulu apa yang membuat database besar dan apakah data tersebut masih diperlukan.

Setelah optimasi selesai, lakukan pemeriksaan ulang. Bandingkan ukuran tabel, overhead, kondisi database, performa website, serta penggunaan resource hosting sebelum dan sesudah optimasi.

Jika database sudah dioptimalkan tetapi website masih lambat, jangan langsung menyimpulkan bahwa masalah berada di MySQL. Periksa juga plugin, theme, versi PHP, caching, ukuran gambar, jumlah request, query aplikasi, CPU, RAM, disk I/O, PHP workers, database connections, dan batas resource hosting.

Dengan pendekatan yang bertahap, hati-hati, dan terukur, database MySQL dapat tetap dikelola dengan baik meskipun jumlah data website terus bertambah.

Bagikan:

Tags

Joko Warino

Seorang blogger yang mendalami dunia SEO (Search Engine Optimization) dari tahun 2012 hingga saat ini dan terus belajar memahami perkembangan logaritma yang terus di update oleh Google.

Tinggalkan komentar