Merhaba Değerli ForumWM Üyeleri,
Web sitelerimizin hızı ve sunucu performansı denilince akla hep cache eklentileri veya CSS/JS sıkıştırma gelir. Ancak arka planda sitenizin kalbi olan veri tabanını (Database) ihmal ediyorsanız, ne yaparsanız yapın siteniz zamanla hantallaşacaktır.
Özellikle yüksek trafikli sitelerde database optimizasyonu hayati önem taşır. Bu rehberde, sorgu sürelerinizi milisaniyelere düşürecek ve sitenizi veri tabanı kaynaklı kilitlenmelerden (Internal Server Error / CPU Aşımı) kurtaracak adımları inceliyoruz.
SQL
<span>SET</span> FOREIGN_KEY_CHECKS <span>=</span> <span>0</span>;<br><span>SET</span> UNIQUE_CHECKS <span>=</span> <span>0</span>;<br><span>SET</span> AUTOCOMMIT <span>=</span> <span>0</span>;<br>
(Import işlemi bittikten sonra bu değerleri tekrar 1 yapmayı unutmayın!)
WordPress sitelerinizin veri tabanının otomatik olarak şişmesini engellemek için wp-config.php dosyanıza şu sınırlandırmaları ekleyebilirsiniz:
PHP
// Yazı revizyonlarını maksimum 3 ile sınırlandırır
define('WP_POST_REVISIONS', 3);
// Çöp kutusuna atılan öğeleri 7 gün sonra veri tabanından tamamen siler
define('EMPTY_TRASH_DAYS', 7);
Siz veri tabanı temizliği için hangi yöntemleri kullanıyorsunuz?Eklenti mi (WP-Optimize vb.) tercih ediyorsunuz yoksa doğrudan phpMyAdmin üzerinden manuel SQL sorgularıyla mı çalışıyorsunuz? Yaşadığınız yavaşlık veya kilitlenme sorunlarını aşağıya yazarsanız, tablolarınızı inceleyip birlikte optimize edebiliriz.
Yorumlarınızı ve tecrübelerinizi bekliyorum, herkese kesintisiz ve hızlı projeler!
Web sitelerimizin hızı ve sunucu performansı denilince akla hep cache eklentileri veya CSS/JS sıkıştırma gelir. Ancak arka planda sitenizin kalbi olan veri tabanını (Database) ihmal ediyorsanız, ne yaparsanız yapın siteniz zamanla hantallaşacaktır.
Özellikle yüksek trafikli sitelerde database optimizasyonu hayati önem taşır. Bu rehberde, sorgu sürelerinizi milisaniyelere düşürecek ve sitenizi veri tabanı kaynaklı kilitlenmelerden (Internal Server Error / CPU Aşımı) kurtaracak adımları inceliyoruz.
1. Tablo Boyutlarını Şişiren Gizli Düşmanlar
Database boyutunuzun büyük bir kısmı aslında işinize yaramayan çöplerden oluşur. Temizlik yaparken şu tablolara odaklanın:- Yazı Revizyonları (Revisions): Siz bir makaleyi düzenlerken veri tabanına her seferinde yeni bir kopya eklenir. 100 makaleniz varsa, arka planda 2000 revizyon satırı birikmiş olabilir.
- Transient Verileri: Eklentilerin geçici olarak kaydettiği ama süresi dolduğu halde temizlenmeyen önbellek verileridir.
- Yetim (Orphaned) Veriler: Sildiğiniz eklentilerin veri tabanında bıraktığı kalıntı tablolardır. Eklentiyi silmek, verilerini her zaman temizlemez.
2. Sorgu Sürelerini Kısaltmak İçin İndeksleme (Indexing)
Database sorgularınız yavaşsa, MySQL tablodaki milyonlarca satırı tek tek tarıyor demektir. Sık aranan veya filtrelenen sütunlara INDEX tanımlamak, kitabın arkasındaki "fihrist" bölümü gibi çalışır. Botlar veya kullanıcılar arama yaptığında sistem doğrudan ilgili satıra gider, CPU kullanımı düşer.3. Log Kayıtlarını (Transaction History) Ayıklama
Sitede tutulan işlem geçmişi, kullanıcı hareketleri veya güvenlik eklentilerinin logları zamanla gigabaytlarca yer kaplayabilir.- Çözüm: Log kayıtlarını veri tabanında sonsuza kadar tutmayın. Haftalık veya aylık periyotlarla otomatik temizleme mekanizmaları kurun ya da bu verileri ayrı bir dosyaya (log dosyası) yazdırın.
4. Tek Tıkla Veri Tabanı İçe Aktarma (Import) Optimizasyonu
Büyük database dosyalarını (özellikle .sql kalıplarını) yeni sunucuya taşırken yarıda kesilme veya timeout (zaman aşımı) hataları sıkça yaşanır. Bunu önlemek ve tek seferde eksiksiz import yapmak için içe aktarma öncesi şu SQL komutlarını çalıştırmak işlemi inanılmaz hızlandırır:SQL
<span>SET</span> FOREIGN_KEY_CHECKS <span>=</span> <span>0</span>;<br><span>SET</span> UNIQUE_CHECKS <span>=</span> <span>0</span>;<br><span>SET</span> AUTOCOMMIT <span>=</span> <span>0</span>;<br>
(Import işlemi bittikten sonra bu değerleri tekrar 1 yapmayı unutmayın!)
wp-config.php İçin Can Kurtaran Kodlar
WordPress sitelerinizin veri tabanının otomatik olarak şişmesini engellemek için wp-config.php dosyanıza şu sınırlandırmaları ekleyebilirsiniz:PHP
// Yazı revizyonlarını maksimum 3 ile sınırlandırır
define('WP_POST_REVISIONS', 3);
// Çöp kutusuna atılan öğeleri 7 gün sonra veri tabanından tamamen siler
define('EMPTY_TRASH_DAYS', 7);
Siz veri tabanı temizliği için hangi yöntemleri kullanıyorsunuz?Eklenti mi (WP-Optimize vb.) tercih ediyorsunuz yoksa doğrudan phpMyAdmin üzerinden manuel SQL sorgularıyla mı çalışıyorsunuz? Yaşadığınız yavaşlık veya kilitlenme sorunlarını aşağıya yazarsanız, tablolarınızı inceleyip birlikte optimize edebiliriz.
Yorumlarınızı ve tecrübelerinizi bekliyorum, herkese kesintisiz ve hızlı projeler!