İçeriğe geç
WordPress Veritabanı Optimizasyonu: Veritabanınızı Nasıl Temizler ve Hızlandırırsınız

WordPress Veritabanı Optimizasyonu: Veritabanınızı Nasıl Temizler ve Hızlandırırsınız

Erik KellerErik KellerGüncelleme tarihi: 15 dk okuma600 görüntülenme

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 →

Sık Sorulan Sorular

WordPress veritabanımı ne sıklıkla optimize etmeliyim?
Çoğu site için aylık optimizasyon yeterlidir. Aktif WooCommerce mağazaları veya forumları olan yüksek trafikli siteler haftalık olarak optimize etmelidir. WP-Optimize gibi otomatik araçlar bunu bir program dahilinde gerçekleştirebilir.
Veritabanından yazı revizyonlarını silmek güvenli mi?
Evet, eski yazı revizyonlarını silmek güvenlidir ve genellikle önerilir. WordPress varsayılan olarak sınırsız revizyon saklar, bu da binlerce satır ekleyebilir. wp-config.php dosyasına define REVISIONS sabitini ekleyerek revizyonları sınırlayabilirsiniz.
Veritabanı optimizasyonu site hızımı artırır mı?
Veritabanı optimizasyonu genellikle sorgu yürütme süresini azaltır, bu da sunucu yanıt süresini (TTFB) iyileştirir. Etkisi, WooCommerce ürün sayfaları veya arama sonuçları gibi karmaşık sorgulara sahip dinamik sayfalarda en belirgin şekilde görülür.
Yedekten önce mi yoksa sonra mı veritabanını optimize etmeliyim?
Herhangi bir optimizasyon işlemine başlamadan önce her zaman tam bir veritabanı yedeği oluşturun. Bu, temizleme sürecinde bir şeyler ters giderse verilerinizi geri yükleyebilmenizi sağlar.
Yetim meta veri satırları nedir ve bunları güvenle kaldırabilir miyim?
Yetim meta veriler, artık var olmayan yazılar, kullanıcılar veya yorumlar ile referans veren meta tablolarındaki satırlardır. Silinmesi güvenlidir ve genellikle silinmiş eklentiler veya içeriklerden birikir. WP-Optimize gibi araçlar bu girişleri tanımlayıp temizleyebilir.

Bu yaziyi paylas

Yazar Hakkında

Erik Keller
Erik Keller

WordPress Uzmanı

Tema, eklenti ve WooCommerce geliştirme alanında kapsamlı deneyime sahip kıdemli WordPress uzmanı. İşletmelerin WordPress çözümleriyle başarıya ulaşmasına yardımcı olma konusunda tutkulu.

WordPressWooCommerceTema GeliştirmeEklenti GeliştirmePerformans Optimizasyonu

Güncel Kal

En son WordPress ipuçlarını ve eğitimlerini e-postaniza alın.