Teknik Optimizasyon

WordPress Veritabanı Optimizasyonu: Eklentilerin Ötesinde MySQL Püf Noktaları

phpMyAdmin'de WordPress veritabanı optimizasyonu

Veritabanı Optimizasyonunun Önemi

Yavaş çalışan bir WordPress web sitesinin nedeni her zaman büyük resimler veya zayıf barındırma hizmeti değildir. Çoğu zaman, gerçek darboğaz MySQL veritabanının içinde gizlidir. WordPress büyüdükçe, eski meta veriler, süresi dolmuş geçici veriler, silinen eklentilerden kullanılmayan seçenekler, yetim kalmış postmeta girdileri ve düzgün çalışmayan binlerce cron görevi gibi gereksiz veriler biriktirir.

Çoğu kullanıcı sorunu veritabanı eklentileriyle çözmeye çalışır. Bu araçlar temel temizlik için kullanışlıdır, ancak şişkin otomatik yüklenen veriler veya verimsiz indeksler gibi daha derin yapısal sorunları çözemezler. Manuel MySQL optimizasyonu size gerçek kontrol sağlar ve eklentilerin ulaşamayacağı performans kazanımlarının kilidini açar.

Veritabanı optimizasyonu, TTFB'yi (İlk Ziyaret Süresi), arka uç hızını, WooCommerce performansını, CPU kullanımını ve genel sunucu yükünü etkiler. Doğru manuel ayarlamalarla web siteniz daha hızlı, daha istikrarlı ve çok daha ölçeklenebilir hale gelir.

Veritabanı optimizasyonunu tam kapsamlı performans iyileştirmeleriyle birleştirmek istiyorsanız, şunlara göz atın: WordPress Hız Optimizasyon Hizmeti.

WordPress'ün Temel Tablolarını Anlamak

Veritabanını etkili bir şekilde optimize etmek için, her tablonun ne işe yaradığını ve neden şişkin hale gelebileceğini anlamanız gerekir.

wp_seçenekleri
WordPress'in genel ayarlarını, eklenti yapılandırmalarını ve önbelleğe alınmış verileri depolar. En kritik sütun şudur: otomatik yüklemeBu tablo, her sayfa isteğinde yüklenir. Eğer bu tabloda megabaytlarca gereksiz otomatik yüklenen girdi varsa, TTFB'niz (İlk Sayfaya Giriş Süresi) olumsuz etkilenir.

wp_postmeta
Gönderiler, sayfalar ve WooCommerce ürünleri için meta verileri içerir. Genellikle silinen gönderilerden ve revizyonlardan kalan kullanılmayan veya sahipsiz verileri barındırır.

wp_cron
WordPress'in tüm zamanlanmış görev sistemini saklar. Eklentiler tekrar tekrar olay kaydettiğinde, bu tablo kontrolden çıkabilir.

OKUMAK  WoodMart'taki Küçük Bir Değişiklik WooCommerce Mağazanızı Nasıl Bir Rokete Dönüştürebilir: 25.000'den Fazla Ürün İçin Deneyimim ve İpuçlarım

Geçici olaylar
wp_options içinde saklanan geçici önbellek değerleri, genellikle otomatik olarak silinmeden süreleri dolar.

Sağlıklı bir veritabanı, bu tabloları küçük, indekslenmiş ve süresi dolmuş veya yetim kalmış içerikten arındırılmış halde tutar.

1. wp_options'ı Temizleme ve Otomatik Yükleme Boyutunu Küçültme

wp_options tablosu performansı en çok etkileyen tablodur. Amaç, otomatik olarak yüklenen veri miktarını en düşük seviyeye indirmektir. 1 MB.

Tablonun genel durumunu kontrol edin:

SELECT COUNT(*) AS total_rows,
ROUND(SUM(LENGTH(option_value)) / 1024 / 1024, 2) AS size_mb,
SUM(CASE WHEN autoload='yes' THEN 1 ELSE 0 END) AS autoloaded
FROM wp_options;

En ağır otomatik yüklenen girdileri bulun:

Sorgu İzleyicisi kullanarak otomatik yüklenen seçeneklerin boyutunu kontrol etme
SELECT option_name, LENGTH(option_value)/1024 AS size_kb
FROM wp_options
WHERE autoload='yes'
ORDER BY size_kb DESC
LIMIT 30;

Sıklıkla kullanılmayan eklentilerden kalan veriler, devasa izleme kayıtları veya süresi dolmuş olması gereken ancak dolmamış WooCommerce oturum verileriyle karşılaşacaksınız.

Gereksiz seçenekleri kaldırın:

DELETE FROM wp_options
WHERE option_name='old_plugin_cache_data';

Bir eklenti yanlış şekilde kaldırılırsa, kullanılmayan birçok seçenek kalabilir. Otomatik yüklenen verilerin 5-10 MB'tan 1 MB'ın altına düşürülmesi, sunucu yanıt süresini önemli ölçüde iyileştirebilir.

2. wp_postmeta'yı Temizleme ve Yetim Meta Verilerini Kaldırma

WordPress kurulumlarında, özellikle WooCommerce sitelerinde, wp_postmeta tablosu genellikle en büyük tablodur. Zamanla, artık mevcut olmayan gönderilerle ilgili meta verileri toplar.

Yetim kalmış postmeta girdilerini belirleyin:

SELECT COUNT(*)
FROM wp_postmeta pm
LEFT JOIN wp_posts p ON p.ID = pm.post_id
WHERE p.ID IS NULL;

Bunları güvenli bir şekilde silin:

DELETE pm
FROM wp_postmeta pm
LEFT JOIN wp_posts p ON p.ID = pm.post_id
WHERE p.ID IS NULL;

Boş veya kullanılmayan meta verileri kaldırın:

DELETE FROM wp_postmeta
WHERE meta_value = '' OR meta_value IS NULL;

Temizleme işleminden sonra, postmeta verilerini içeren sorgular (özellikle WooCommerce ürün sayfaları) önemli ölçüde hızlanır.

OKUMAK  Çevrimiçi Mağazanız Yavaş Hissediyor Ama PageSpeed 95 Diyor? Filtreler, Varyasyonlar ve Kaybedilen Müşteriler Hakkındaki Gerçek — ve Bunları Nasıl Düzeltebilirsiniz

3. Süresi Dolmuş ve Kullanılmayan Geçici Verilerin Kaldırılması

Transient'ler, eklentiler ve tema işlevselliği için geçici olarak önbelleğe alınmış bilgileri depolar. WordPress, süresi dolmuş transient'leri otomatik olarak silmelidir, ancak gerçekte bunlar genellikle wp_options tablosunda sıkışıp kalır.

Tüm geçici olayları kaldırın:

DELETE FROM wp_options
WHERE option_name LIKE '_transient_%'
OR option_name LIKE '_site_transient_%';

Yalnızca süresi dolmuş geçici varlıkları kaldırın:

DELETE FROM wp_options
WHERE option_name LIKE '_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();

Bazı siteler on binlerce süresi dolmuş geçici kaydı biriktirerek veritabanı sorgulamalarını önemli ölçüde yavaşlatır.

4. wp_cron'u Temizleme ve Planlanmış Görev Yükünü Azaltma

Dahili wp-cron sistemi, sıklıkla yinelenen veya takılıp kalan görevlerle aşırı yüklenir. Bu durum hem ön uç performansını hem de WordPress yönetim alanını yavaşlatabilir.

Cron boyutunu kontrol edin:

SELECT LENGTH(option_value)/1024/1024 AS cron_size_mb
FROM wp_options
WHERE option_name='cron';

Cron girdisi alışılmadık derecede büyükse, sıfırlayın:

DELETE FROM wp_options WHERE option_name='cron';

WordPress, bir sonraki planlanmış etkinlikte cron girdisini otomatik olarak yeniden oluşturacaktır.

Daha yüksek güvenilirlik için, yerleşik cron görevini devre dışı bırakın ve gerçek bir sistem cron görevi kullanın.

wp-config.php dosyasına şunu ekleyin:

define('DISABLE_WP_CRON', true);

Ardından sunucu düzeyinde bir cron görevi ayarlayarak şu komutu çalıştırın:

https://yourdomain.com/wp-cron.php?doing_wp_cron

Bu, işlemci kullanımındaki ani artışları azaltır ve zamanlama işlemlerini öngörülebilir hale getirir.

5. Tabloları Optimize Etme ve Faydalı İndeksler Ekleme

Veritabanını temizledikten sonra, depolama alanını birleştirmek ve performansı iyileştirmek için fiziksel tablo optimizasyonunu çalıştırın:

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

Büyük postmeta tabloları için, indeks eklemek sorgu performansını önemli ölçüde artırabilir:

ALTER TABLE wp_postmeta ADD INDEX meta_key_idx (meta_key(191));

Bu, özellikle WooCommerce veya gelişmiş özel alanlar kullanırken faydalıdır.

6. WP-CLI ile Süreci Otomatikleştirme

Geliştiriciler ve ajanslar için otomasyon, bakım için harcanan saatlerce zamandan tasarruf sağlar.

OKUMAK  WordPress Sitenizi Hızlandırmak İçin wp_options Tablosunu Nasıl Optimize Edersiniz

Faydalı WP-CLI komutları:

wp transient delete --expired
wp db optimize
wp option delete old_plugin_data

Bu işlemleri, sürekli optimizasyon için haftalık veya aylık olarak çalışacak şekilde bir cron görevi aracılığıyla planlayın.

Gerçek Vaka İncelemesi: SpeedWP Pro Optimizasyon Sonuçları

WooCommerce'tan bir müşterimiz, ciddi performans sorunlarıyla ilgili olarak bize başvurdu:

  • Veritabanı boyutu: 380 MB

  • Otomatik yüklenen veri: 6,2 MB

  • TTFB: 700–900 ms

  • Yönetici paneli son derece yavaş

Manuel optimizasyon sonrasında:

  • Süresi dolmuş 140.000 geçici kayıt kaldırıldı.

  • Otomatik yükleme boyutu 6,2 MB'tan 0,9 MB'a düşürüldü.

  • 80.000 adet sahipsiz postmeta girdisi silindi.

  • Tüm ana tablolar optimize edildi.

Sonuçlar:

  • TTFB, şu şekilde iyileştirildi: 42%

  • Yönetici yükleme süresi azaldı. 3,8 saniyeden 1,6 saniyeye

  • MySQL CPU kullanımı 35% azaldı.

  • WooCommerce ürün düzenlemeleri önemli ölçüde hızlandı.

Bu, manuel MySQL ayarlarının, eklentilerin sağlayamayacağı iyileştirmeleri nasıl başarabileceğini göstermektedir.

WordPress veritabanı optimizasyonu, tek bir "veritabanını temizle" düğmesine tıklamaktan çok daha fazlasını gerektirir. Gerçek performans kazanımları, MySQL'in verileri nasıl depoladığını anlamaktan, siteyi yavaşlatan unsurları belirlemekten ve bunları güvenli ve stratejik bir şekilde kaldırmaktan gelir.

Otomatik yüklenen verileri kontrol ederek, yetim kalmış meta verileri temizleyerek, cron görevlerini düzgün bir şekilde yöneterek ve SQL düzeyinde optimizasyon kullanarak, WordPress kurulumunuzun büyüdükçe bile yalın, hızlı ve ölçeklenebilir kalmasını sağlarsınız.

Sitenize özel profesyonel bir veritabanı denetimi istiyorsanız, talepte bulunun. Ücretsiz Performans Denetimi Burada:
https://speedwppro.com/free-audit