Her sayfa yüklemesi, form gönderimi, eklenti işlemi ve WordPress'teki kullanıcı oturumu, veritabanı sorgularını içerir. Zamanla, veritabanı aşırı yük biriktirir: eski yazı revizyonları, süresi dolmuş geçici veriler, yetim meta veriler, spam yorumlar ve devre dışı bırakılmış eklentilerden kalan kullanılmayan tablolar. Bu aşırı yük, sorguları yavaşlatır, yedekleme boyutlarını artırır ve genel site performansını düşürür. Bu kılavuz, veritabanı aşırı yükünü nasıl tanımlayacağınızı, güvenli bir şekilde nasıl temizleyeceğinizi ve geri dönmesini nasıl engelleyeceğinizi kapsar.
WordPress'in Veritabanında Sakladıkları
Veritabanınızda nelerin bulunduğunu anlamak, güvenli bir şekilde kaldırılabilecekleri tanımlamanıza yardımcı olur. Standart bir WordPress kurulumu 12 ana tablo kullanır ve eklentiler gerektiğinde kendi tablolarını ekler.
| Tablo | Saklar | Yaygın Aşırı Yük Kaynağı |
|---|---|---|
| wp_posts | Yazılar, sayfalar, revizyonlar, ekler, özel yazı türleri | Yazı revizyonları, otomatik taslaklar |
| wp_postmeta | Yazılar için meta veriler (özel alanlar, eklenti verileri) | Silinmiş yazılardan kalan yetim meta |
| wp_options | Site ayarları, eklenti ayarları, geçici veriler | Süresi dolmuş geçici veriler, eski eklenti ayarları |
| wp_comments | Yorumlar ve trackback'ler | Spam yorumlar, çöp kutusundaki yorumlar |
| wp_commentmeta | Yorumlar için meta veriler | Silinmiş yorumlar için Akismet meta verileri |
| wp_usermeta | Kullanıcı meta verileri | Oturum belirteçleri, eklenti kullanıcı verileri |
| wp_termmeta | Kategoriler ve etiketler için meta veriler | Yetim terim meta verileri |
Veritabanı Aşırı Yükünün Yaygın Kaynakları
Yazı Revizyonları
WordPress, bir yazı veya sayfada "Taslağı Kaydet" veya "Güncelle" butonuna her tıkladığınızda bir revizyon kaydeder. 50 kez düzenlenen bir yazının wp_posts tablosunda 50 revizyonu bulunur ve her birinin kendi setinde postmeta girdileri vardır. Yüzlerce yazıya sahip bir sitede, revizyonlar binlerce gereksiz veritabanı satırına neden olabilir.
Geçici Veriler
Geçici veriler, WordPress çekirdeği ve eklentileri tarafından wp_options tablosunda saklanan geçici verilerdir. Süreleri vardır, ancak WordPress süresi dolmuş geçici verileri otomatik olarak silmez. Zamanla birikirler ve özellikle birçok eklentiye sahip sitelerde seçenekler tablosunu önemli ölçüde büyütebilirler.
Yetim Veriler
Bir yazıyı sildiğinizde, onun meta verileri (wp_postmeta girdileri) silinmeyebilir. Benzer şekilde, yorumları, kullanıcıları veya terimleri silmek, geride yetim meta veri satırları bırakabilir. Devre dışı bırakılmış ve silinmiş eklentiler genellikle veritabanı tablolarını geride bırakır, bu da alan tüketir ve veritabanınızı karıştırır.
Spam ve Çöp Kutusundaki İçerik
Spam yorumlar, çöp kutusundaki yazılar ve çöp kutusundaki yorumlar, manuel olarak boşaltılana kadar veritabanında kalır. Akismet veya diğer spam filtrelerine sahip siteler, periyodik olarak temizlenmesi gereken binlerce spam yorumu biriktirebilir.
Otomatik Taslaklar
WordPress, yazı editöründe "Yeni Ekle" butonuna tıkladığınızda otomatik taslak yazılar oluşturur, hatta hiç yayınlamasanız bile. Bunlar zamanla birikir ve düzenleme oturumu sona erdikten sonra hiçbir işe yaramaz.
SQL ile Manuel Veritabanı Temizliği
SQL ile rahat olanlar, phpMyAdmin veya bir veritabanı istemcisi kullanarak doğrudan temizlik yapabilirler. Temizlik sorgularını çalıştırmadan önce her zaman veritabanınızı yedekleyin.
Yazı Revizyonlarını Sil
-- Tüm yazı revizyonlarını sil
DELETE FROM wp_posts WHERE post_type = 'revision';
-- Silinmiş yazılar için yetim postmeta'yı sil
DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts p ON pm.post_id = p.ID
WHERE p.ID IS NULL;
Geçici Verileri Temizle
-- Süresi dolmuş geçici verileri sil
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();
-- Süresi dolmuş geçici veriler için verileri sil
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_%'
AND option_name NOT LIKE '%_transient_timeout_%';
Spam ve Çöp Kutusundaki Yorumları Kaldırma
-- Spam yorumları sil
DELETE FROM wp_comments WHERE comment_approved = 'spam';
-- Çöp kutusundaki yorumları sil
DELETE FROM wp_comments WHERE comment_approved = 'trash';
-- Yetim yorum meta verilerini sil
DELETE cm FROM wp_commentmeta cm
LEFT JOIN wp_comments c ON cm.comment_id = c.comment_ID
WHERE c.comment_ID IS NULL;
Eklenti Tabanlı Veritabanı Temizliği
GUI tabanlı bir yaklaşımı tercih ediyorsanız, birkaç eklenti zamanlama yetenekleri ile veritabanı optimizasyonunu yönetir:
WP-Optimize
WP-Optimize, revizyonları, taslakları, spamı, geçici verileri ve yetim verileri temizleyen ücretsiz bir eklentidir. Ayrıca veritabanı tablolarını optimize eder ve zamanlanmış temizlikleri destekler. Pro versiyonu çoklu site desteği ve gelişmiş zamanlama ekler.
WP Rocket Veritabanı Optimizasyonu
WP Rocket, revizyonları, otomatik taslakları, çöp kutusundaki gönderileri, spam yorumları, geçici verileri ve tablo optimizasyonunu yöneten bir Veritabanı sekmesine sahiptir. WP Rocket esasen bir önbellek eklentisi olduğundan, performans optimizasyonu ile birlikte veritabanı temizliği de tek bir araçta sağlanır.
Gelişmiş Veritabanı Temizleyici
Bu eklenti, devre dışı bırakılan eklentiler tarafından bırakılan tabloları ve yetim cron olaylarını tespit ederek daha derin bir analiz yapar. Tabloları WordPress çekirdek, eklenti oluşturulan veya bilinmeyen olarak kategorize eder ve hangi tabloların güvenli bir şekilde kaldırılabileceğini belirlemenize yardımcı olur.
| Eklenti | Ücretsiz Versiyon | Zamanlanmış Temizlik | Tablo Tespiti |
|---|---|---|---|
| WP-Optimize | Evet | Evet | Temel |
| WP Rocket | Hayır (Sadece Premium) | Evet | Hayır |
| Gelişmiş Veritabanı Temizleyici | Evet | Sadece Pro | Evet (detaylı) |
wp-config.php Optimizasyonları
Veritabanı şişmesini önlemek için bu sabitleri wp-config.php dosyanıza ekleyin:
Gönderi Revizyonlarını Sınırlandırma
// Her gönderi için yalnızca 5 revizyon sakla (önerilir)
define( 'WP_POST_REVISIONS', 5 );
// Revizyonları tamamen devre dışı bırak (çoğu site için önerilmez)
define( 'WP_POST_REVISIONS', false );
Revizyonları 5 olarak ayarlamak, hatalardan kurtulmak için yeterli geçmiş sağlar ve sınırsız revizyon büyümesini önler. Sık düzenlemeler yapılan içerik ağırlıklı siteler için 10 revizyon makul bir alternatiftir.
Çöp Kutusunu Otomatik Boşaltma
// Her 7 günde bir çöp kutusunu boşalt (varsayılan 30 gündür)
define( 'EMPTY_TRASH_DAYS', 7 );
// Çöp kutusunu devre dışı bırak (öğeler hemen silinir - dikkatli kullanın)
define( 'EMPTY_TRASH_DAYS', 0 );
Otomatik Kaydetme Aralığı
// Otomatik kaydetme aralığını 5 dakikaya çıkar (varsayılan 60 saniyedir)
define( 'AUTOSAVE_INTERVAL', 300 );
Veritabanı Tablolarını Optimize Etme
Satırları sildikten sonra, parçalanmış alanı geri kazanmak için bir OPTIMIZE işlemi gerçekleştirin:
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_comments, wp_commentmeta;
Bunu aylık olarak veya büyük temizlik işlemlerinden sonra planlayın. Çoğu temizlik eklentisi, zamanlanmış görevlerinde tablo optimizasyonunu içerir.
Otomatik Temizliği Zamanlama
Otomatik zamanlamalar ayarlayın: haftalık geçici ve spam temizliği...
am temizliği, aylık revizyon kaldırma ve tablo optimizasyonu, ve yetim eklenti tablolarının üç aylık denetimleri. WP-Optimize ve WP Rocket, planlı temizliği destekler. Bunları yoğun olmayan saatlerde yapılandırın.Veritabanı Boyutunu İzleme
Şişkinliği erken yakalamak için veritabanı boyutunuzu takip edin. Bireysel tablo boyutlarını görmek için bu sorguyu çalıştırın:
SELECT table_name AS 'Tablo',
ROUND(data_length / 1024 / 1024, 2) AS 'Veri (MB)',
table_rows AS 'Satırlar'
FROM information_schema.tables
WHERE table_schema = 'veritabanı_adınız'
ORDER BY (data_length + index_length) DESC
LIMIT 20;
eğer wp_options 5 MB'yi aşarsa veya wp_postmeta 100 MB'yi geçerse, bir temizlik zamanı gelmiştir. Bu tablolar sıkça sorgulandığı için boyutları sayfa yükleme sürelerini doğrudan etkiler.
Önbelleklemenin yanı sıra veritabanı optimizasyonunu içeren kapsamlı bir performans optimizasyonu yaklaşımı için, görüntü optimizasyonu ve sunucu yapılandırması ile birlikte, WordPress hız optimizasyonu kılavuzumuzu okuyun. Bakım rutininizin bir parçası olarak sürekli veritabanı sağlığı için, WordPress bakım kılavuzumuza bakın.
Daha fazla bilgi için resmi dokümantasyona bakın: WordPress Veritabanı API'si.
Sıkça Sorulan Sorular
Veritabanından gönderi revizyonlarını silmek güvenli mi?
Evet, gönderi revizyonlarını silmek güvenlidir ve yayımlanan içeriğinizi etkilemez. Revizyonlar, taslak değişikliklerinin tarihsel anlık görüntüleridir. İçeriğiniz kesinleştikten sonra, revizyonlar çoğu site için bir anlam ifade etmez. Ancak, her zaman herhangi bir temizlik yapmadan önce veritabanınızı yedekleyin.
Veritabanı optimizasyonu site hızımı belirgin şekilde artırır mı?
İyileşme, veritabanınızın ne kadar şişkin olduğuna bağlıdır. 50.000'den fazla yetim satıra veya 10 MB'yi aşan bir wp_options tablosuna sahip siteler, sayfa yükleme sürelerinde ve yönetici paneli yanıt verme hızında belirgin iyileşmeler görecektir. Daha küçük siteler ise marjinal kazançlar görebilir. Veritabanı optimizasyonu, önbellekleme ve diğer performans önlemleri ile birlikte çalışarak toplu bir iyileşme sağlar.
WordPress veritabanımı ne sıklıkla optimize etmeliyim?
Aktif siteler için düzenli içerik güncellemeleri ile aylık optimizasyon iyi bir temel oluşturur. Sık yorum alan, WooCommerce işlemleri veya form gönderimleri olan yüksek trafiğe sahip siteler, haftalık geçici ve spam temizliği ile aylık tablo optimizasyonundan fayda görebilir.
Veritabanı temizleme eklentileri sitemi bozabilir mi?
WP-Optimize ve WP Rocket gibi güvenilir eklentiler, güvenli olacak şekilde tasarlanmıştır. Bilinen şişkinlik kategorilerini (revizyonlar, geçici veriler, spam) hedef alır ve temel verilere dokunmaz. Eklentiye özgü tabloları manuel olarak silerken risk artar. Bir tablonun gerekli olup olmadığından emin değilseniz, yerinde bırakın ve önce amacını araştırın.
OPTIMIZE TABLE ile satır silme arasındaki fark nedir?
Satır silmek, tablodan verileri kaldırır. OPTIMIZE TABLE, satırlar silindikten sonra tablonun fiziksel depolamasını yeniden düzenler, disk alanını geri kazanır ve veri dosyasını birleştirir. Bunu dosyaları silmek (satırları kaldırmak) ile sabit diskinizi birleştirmek (tabloyu optimize etmek) olarak düşünün.
WordPress tabloları için InnoDB mi yoksa MyISAM mı kullanmalıyım?
WordPress, 5.5 sürümünden itibaren varsayılan olarak InnoDB kullanır ve bu önerilen depolama motorudur. InnoDB, satır düzeyinde kilitleme (eşzamanlı kullanıcılar için daha iyi), işlemler ve çökme kurtarma destekler. MyISAM, okuma ağırlıklı işlemler için daha hızlıdır ancak bu güvenilirlik özelliklerinden yoksundur. Veritabanınızda MyISAM tabloları bulursanız, bunları genellikle InnoDB'ye dönüştürmeniz önerilir.
Devre dışı bırakılan eklentilerin bıraktığı tabloları nasıl tanımlarım?
Advanced Database Cleaner eklentisi, çekirdek olmayan tabloları tespit edip kategorize edebilir. Alternatif olarak, SHOW TABLES SQL sorgusunu çalıştırın ve tablo adlarını WordPress çekirdek tabloları ve şu anda etkin olan eklentilerinizle karşılaştırın. Devre dışı bırakılan eklentilerle eşleşen önekleri olan tablolar, kaldırılmak için adaydır.
WooCommerce önemli ölçüde veritabanı şişkinliği ekliyor mu?
Evet. WooCommerce, sipariş verilerini, ürün meta verilerini, müşteri oturumlarını ve aktif mağazalarda önemli ölçüde büyüyen geçici verileri depolar. Sürekli olarak süresi dolmuş geçici verileri ve oturumları temizlemek için WooCommerce > Durum > Araçlar'ı kullanın.
Her Açıdan Performansı Optimize Edin
WP Rocket, önbellekleme, veritabanı temizliği ve performans optimizasyonunu tek bir eklentide bir araya getirir, böylece sitenizin sorunsuz çalışmasını sağlayabilirsiniz.
WP Rocket'i Keşfedin →


