Langsung ke konten
Optimasi Database WordPress: Cara Membersihkan dan Mempercepat Database Anda
Performa WordPress📋 Panduan

Optimasi Database WordPress: Cara Membersihkan dan Mempercepat Database Anda

Erik KellerErik Keller••Diperbarui pada: •15 menit baca•449 tampilan

Setiap pemuatan halaman, pengiriman formulir, operasi plugin, dan sesi pengguna di WordPress melibatkan kueri basis data. Seiring waktu, basis data mengakumulasi beban: revisi pos lama, transien yang kedaluwarsa, metadata yatim, komentar spam, dan tabel yang tidak terpakai dari plugin yang dinonaktifkan. Pembengkakan ini memperlambat kueri, meningkatkan ukuran cadangan, dan menurunkan kinerja situs secara keseluruhan. Panduan ini mencakup cara mengidentifikasi pembengkakan basis data, membersihkannya dengan aman, dan mencegahnya kembali.

Apa yang Disimpan WordPress di Basis Data

Memahami apa yang ada di basis data Anda membantu Anda mengidentifikasi apa yang dapat dihapus dengan aman. Instalasi WordPress standar menggunakan 12 tabel inti, dan plugin menambahkan tabel mereka sendiri sesuai kebutuhan.

Tabel Menyimpan Sumber Pembengkakan Umum
wp_posts Pos, halaman, revisi, lampiran, jenis pos kustom Revisi pos, draf otomatis
wp_postmeta Metadata untuk pos (bidang kustom, data plugin) Meta yatim dari pos yang dihapus
wp_options Pengaturan situs, pengaturan plugin, transien Transien yang kedaluwarsa, pengaturan plugin lama
wp_comments Komentar dan trackback Komentar spam, komentar yang dibuang
wp_commentmeta Metadata untuk komentar Metadata Akismet untuk komentar yang dihapus
wp_usermeta Metadata pengguna Token sesi, data pengguna plugin
wp_termmeta Metadata untuk kategori dan tag Metadata term yatim

Sumber Umum Pembengkakan Basis Data

Revisi Pos

WordPress menyimpan revisi setiap kali Anda mengklik "Simpan Draf" atau "Perbarui" pada pos atau halaman. Sebuah pos yang diedit 50 kali memiliki 50 revisi yang disimpan di tabel wp_posts, masing-masing dengan set entri postmeta-nya sendiri. Di situs dengan ratusan pos, revisi dapat menyumbang ribuan baris basis data yang tidak perlu.

Transien

Transien adalah data sementara yang disimpan di tabel wp_options oleh inti WordPress dan plugin. Mereka memiliki waktu kedaluwarsa, tetapi WordPress tidak secara otomatis menghapus transien yang kedaluwarsa. Mereka mengakumulasi seiring waktu dan dapat memperbesar tabel opsi secara signifikan, terutama di situs dengan banyak plugin.

Data Yatim

Ketika Anda menghapus sebuah pos, metadata-nya (entri wp_postmeta) mungkin tidak dihapus. Demikian pula, menghapus komentar, pengguna, atau istilah dapat meninggalkan baris metadata yatim. Plugin yang dinonaktifkan dan dihapus sering meninggalkan tabel basis data mereka, mengonsumsi ruang dan mengacaukan basis data Anda.

Konten Spam dan Dibuang

Komentar spam, pos yang dibuang, dan komentar yang dibuang tetap berada di basis data hingga dikosongkan secara manual. Situs dengan Akismet atau filter spam lainnya mungkin mengakumulasi ribuan komentar spam yang perlu dibersihkan secara berkala.

Draf Otomatis

WordPress membuat pos draf otomatis ketika Anda mengklik "Tambah Baru" di editor pos, bahkan jika Anda tidak pernah menerbitkannya. Ini mengakumulasi seiring waktu dan tidak memiliki tujuan setelah sesi pengeditan berakhir.

Pembersihan Basis Data Manual melalui SQL

Bagi mereka yang nyaman dengan SQL, Anda dapat membersihkan langsung menggunakan phpMyAdmin atau klien basis data. Selalu cadangkan basis data Anda sebelum menjalankan kueri pembersihan.

Hapus Revisi Pos

-- Hapus semua revisi pos
DELETE FROM wp_posts WHERE post_type = 'revision';

-- Hapus postmeta yatim (metadata untuk pos yang dihapus)
DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts p ON pm.post_id = p.ID
WHERE p.ID ADALAH NULL;

Bersihkan Transien

-- Hapus transien yang sudah kedaluwarsa
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();

-- Hapus data transien untuk transien yang sudah kedaluwarsa
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_%'
AND option_name NOT LIKE '%_transient_timeout_%';

Hapus Komentar Spam dan Sampah

-- Hapus komentar spam
DELETE FROM wp_comments WHERE comment_approved = 'spam';

-- Hapus komentar yang dibuang
DELETE FROM wp_comments WHERE comment_approved = 'trash';

-- Hapus metadata komentar yang terasing
DELETE cm FROM wp_commentmeta cm
LEFT JOIN wp_comments c ON cm.comment_id = c.comment_ID
WHERE c.comment_ID IS NULL;

Pembersihan Database Berbasis Plugin

Jika Anda lebih suka pendekatan berbasis GUI, beberapa plugin menangani optimasi database dengan kemampuan penjadwalan:

WP-Optimize

WP-Optimize adalah plugin gratis yang membersihkan revisi, draf, spam, transien, dan data yang terasing. Ini juga mengoptimalkan tabel database dan mendukung pembersihan terjadwal. Versi Pro menambahkan dukungan multisite dan penjadwalan lanjutan.

Optimasi Database WP Rocket

WP Rocket mencakup tab Database yang menangani revisi, auto-drafts, pos yang dibuang, komentar spam, transien, dan optimasi tabel. Karena WP Rocket terutama adalah plugin caching, Anda mendapatkan pembersihan database bersamaan dengan optimasi kinerja dalam satu alat.

Pembersih Database Lanjutan

Plugin ini lebih dalam dengan mendeteksi tabel yang ditinggalkan oleh plugin yang dinonaktifkan dan peristiwa cron yang terasing. Ini mengkategorikan tabel sebagai inti WordPress, dibuat oleh plugin, atau tidak dikenal, membantu Anda mengidentifikasi tabel mana yang aman untuk dihapus.

Plugin Versi Gratis Pembersihan Terjadwal Deteksi Tabel
WP-Optimize Ya Ya Dasar
WP Rocket Tidak (Premium saja) Ya Tidak
Pembersih Database Lanjutan Ya Hanya Pro Ya (rinci)

Optimasi wp-config.php

Cegah pembengkakan database dari sumbernya dengan menambahkan konstanta ini ke file wp-config.php Anda:

Batasi Revisi Pos

// Simpan hanya 5 revisi per pos (disarankan)
define( 'WP_POST_REVISIONS', 5 );

// Nonaktifkan revisi sepenuhnya (tidak disarankan untuk sebagian besar situs)
define( 'WP_POST_REVISIONS', false );

Menetapkan revisi ke 5 memberikan cukup sejarah untuk memulihkan dari kesalahan sambil mencegah pertumbuhan revisi yang tidak terbatas. Untuk situs yang padat konten dengan pengeditan yang sering, 10 revisi adalah alternatif yang wajar.

Auto-Kosongkan Sampah

// Kosongkan sampah setiap 7 hari (default adalah 30)
define( 'EMPTY_TRASH_DAYS', 7 );

// Nonaktifkan sampah (item dihapus segera - gunakan dengan hati-hati)
define( 'EMPTY_TRASH_DAYS', 0 );

Interval Autosave

// Tingkatkan interval autosave menjadi 5 menit (default adalah 60 detik)
define( 'AUTOSAVE_INTERVAL', 300 );

Optimasi Tabel Database

Setelah menghapus baris, jalankan operasi OPTIMIZE untuk mengambil kembali ruang yang terfragmentasi:

OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_comments, wp_commentmeta;

Jadwalkan ini setiap bulan atau setelah operasi pembersihan besar. Sebagian besar plugin pembersihan menyertakan optimasi tabel dalam tugas terjadwal mereka.

Jadwal Pembersihan Otomatis

Atur jadwal otomatis: pembersihan sementara dan spam mingguan, penghapusan revisi bulanan dan optimasi tabel, serta audit triwulanan untuk tabel plugin yang tidak terpakai. WP-Optimize dan WP Rocket keduanya mendukung pembersihan terjadwal. Konfigurasikan mereka selama jam sepi.

Memantau Ukuran Database

Pantau ukuran database Anda untuk mendeteksi pembengkakan lebih awal. Jalankan kueri ini untuk melihat ukuran tabel individu:

SELECT table_name AS 'Tabel',
       ROUND(data_length / 1024 / 1024, 2) AS 'Data (MB)',
       table_rows AS 'Baris'
FROM information_schema.tables
WHERE table_schema = 'nama_database_anda'
ORDER BY (data_length + index_length) DESC
LIMIT 20;

Jika wp_options melebihi 5 MB atau wp_postmeta tumbuh lebih dari 100 MB, saatnya untuk pembersihan. Tabel-tabel ini sering di-query, sehingga ukurannya langsung mempengaruhi waktu muat halaman.

Untuk pendekatan optimasi kinerja yang komprehensif yang mencakup optimasi database bersamaan dengan caching, optimasi gambar, dan konfigurasi server, baca panduan optimasi kecepatan WordPress. Untuk kesehatan database yang berkelanjutan sebagai bagian dari rutinitas pemeliharaan Anda, lihat panduan pemeliharaan WordPress.

Untuk detail lebih lanjut, silakan merujuk ke dokumentasi resmi: API Database WordPress.

Pertanyaan yang Sering Diajukan

Apakah aman untuk menghapus revisi pos dari database?

Ya, menghapus revisi pos aman dan tidak mempengaruhi konten yang telah dipublikasikan. Revisi adalah snapshot historis dari perubahan draf. Setelah konten Anda final, revisi tidak memiliki tujuan untuk sebagian besar situs. Namun, selalu cadangkan database Anda sebelum melakukan pembersihan.

Apakah optimasi database akan meningkatkan kecepatan situs saya secara signifikan?

Peningkatan tergantung pada seberapa bengkak database Anda. Situs dengan lebih dari 50.000 baris yang tidak terpakai atau tabel wp_options yang melebihi 10 MB akan melihat peningkatan yang signifikan dalam waktu muat halaman dan responsivitas dasbor admin. Situs yang lebih kecil mungkin melihat peningkatan yang marginal. Optimasi database bekerja bersamaan dengan caching dan langkah-langkah kinerja lainnya untuk perbaikan kumulatif.

Seberapa sering saya harus mengoptimalkan database WordPress saya?

Untuk situs aktif dengan pembaruan konten reguler, optimasi bulanan adalah baseline yang baik. Situs dengan lalu lintas tinggi yang sering mendapatkan komentar, transaksi WooCommerce, atau pengiriman formulir mungkin mendapatkan manfaat dari pembersihan sementara dan spam mingguan dengan optimasi tabel bulanan.

Apakah plugin pembersihan database dapat merusak situs saya?

Plugin yang terpercaya seperti WP-Optimize dan WP Rocket dirancang untuk aman. Mereka menargetkan kategori pembengkakan yang diketahui (revisi, sementara, spam) dan tidak menyentuh data penting. Risiko meningkat saat menghapus tabel spesifik plugin secara manual. Jika tidak yakin apakah tabel diperlukan, biarkan tetap ada dan teliti tujuannya terlebih dahulu.

Apa perbedaan antara OPTIMIZE TABLE dan menghapus baris?

Menghapus baris menghilangkan data dari tabel. OPTIMIZE TABLE mengatur ulang penyimpanan fisik tabel setelah baris dihapus, mengklaim kembali ruang disk dan mendefragmen file data. Anggaplah ini seperti menghapus file (menghapus baris) dibandingkan dengan mendefrag hard drive Anda (mengoptimalkan tabel).

Haruskah saya menggunakan InnoDB atau MyISAM untuk tabel WordPress?

WordPress menggunakan InnoDB secara default sejak versi 5.5, dan ini adalah mesin penyimpanan yang direkomendasikan. InnoDB mendukung penguncian tingkat baris (lebih baik untuk pengguna bersamaan), transaksi, dan pemulihan dari kegagalan. MyISAM lebih cepat untuk operasi baca berat tetapi tidak memiliki fitur keandalan ini. Jika Anda menemukan tabel MyISAM di database Anda, umumnya disarankan untuk mengonversinya ke InnoDB.

Bagaimana cara saya mengidentifikasi tabel yang ditinggalkan oleh plugin yang dinonaktifkan?

Plugin Advanced Database Cleaner dapat mendeteksi dan mengkategorikan tabel non-inti. Sebagai alternatif, jalankan kueri SQL SHOW TABLES dan bandingkan nama tabel dengan tabel inti WordPress dan plugin Anda yang saat ini aktif. Tabel dengan awalan yang cocok dengan plugin yang dinonaktifkan adalah kandidat untuk dihapus.

Apakah WooCommerce menambah pembengkakan database yang signifikan?

Ya. WooCommerce menyimpan data pesanan, metadata produk, sesi pelanggan, dan sementara yang tumbuh secara substansial di toko aktif. Gunakan WooCommerce > Status > Alat untuk secara teratur menghapus sementara dan sesi yang kedaluwarsa.

Optimalkan Kinerja dari Setiap Sudut

WP Rocket menangani caching, pembersihan database, dan optimasi kinerja dalam satu plugin, sehingga Anda dapat menjaga situs Anda tetap berjalan lancar.

Jelajahi WP Rocket →

Pertanyaan yang sering diajukan

Seberapa sering saya harus mengoptimalkan database WordPress saya?
Untuk sebagian besar situs, optimasi bulanan sudah cukup. Situs dengan lalu lintas tinggi yang memiliki toko WooCommerce aktif atau forum sebaiknya dioptimalkan setiap minggu. Alat otomatis seperti WP-Optimize dapat menangani ini sesuai jadwal.
Apakah aman untuk menghapus revisi pos dari database?
Ya, menghapus revisi pos yang lama aman dan umumnya dianjurkan. WordPress menyimpan revisi tak terbatas secara default, yang dapat menambah ribuan baris. Anda dapat membatasi revisi dengan menambahkan konstanta define REVISIONS ke wp-config.php.
Apakah optimasi database akan meningkatkan kecepatan situs saya?
Optimasi database biasanya mengurangi waktu eksekusi kueri, yang meningkatkan waktu respons server (TTFB). Dampaknya paling terlihat pada halaman dinamis dengan kueri kompleks, seperti halaman produk WooCommerce atau hasil pencarian.
Haruskah saya mengoptimalkan database sebelum atau setelah melakukan cadangan?
Selalu buat cadangan penuh database sebelum menjalankan optimasi apa pun. Ini memastikan Anda dapat memulihkan data jika terjadi kesalahan selama proses pembersihan.
Apa itu baris metadata yatim dan apakah saya bisa menghapusnya dengan aman?
Metadata yatim adalah baris dalam tabel meta yang merujuk pada pos, pengguna, atau komentar yang sudah tidak ada. Mereka aman untuk dihapus dan seringkali terakumulasi dari plugin atau konten yang dihapus. Alat seperti WP-Optimize dapat mengidentifikasi dan membersihkan entri ini.

Bagikan postingan ini

Tentang Penulis

Erik Keller
Erik Keller

Pakar WordPress

Spesialis WordPress senior dengan pengalaman luas dalam pengembangan tema, plugin, dan WooCommerce. Bersemangat membantu bisnis sukses dengan solusi WordPress.

WordPressWooCommercePengembangan TemaPengembangan PluginOptimasi Performa

Tetap Update

Dapatkan tips dan tutorial WordPress terbaru di inbox Anda.