WordPress Veri Tabanı Optimizasyonu [Manuel]

WordPress Veri Tabanı Optimizasyonu [Manuel]

WordPress altyapısına sahip bir siteniz mevcut ise ilk başlarda oldukça hızlı ve performanslı bir siteye sahipken bir süre sonra sitenizde içerik sayısının artması ve sitenizde yaptığınız birçok değişikliğinin kalıntıları veri tabanınız da birikmesi sonucu performans düşüklüğü yaşamışsınızdır ya da yaşayacaksınız.

Sitenizin performansının düşmesinin tek sebebi tabii kide veri tabanınızın boyutunun artması değil. Buna neden olan birçok sebep var ancak bu yazımda sadece veri tabanını ele alacağım. Sitenizde yaptığınız her değişiklik, yazılarınızda yazdığınız her kelimeninbelli aralıklarla veri tabanına kayıt edilmesi ve kullandığınız her bir eklentiyi kaldırmanız sırasında eklenti’den geriye kalan ayar,fonksiyon vb kalıntıların hepsi veri tabanınızda tamamen silinmediği için ya da silinemediği için bir süre sonra yer kaplamakta ve gereksiz boş sorguların çalıştırılmasına sebep olmaktadır. Bütün bunlardan dolayı aklımıza WordPress Veri Tabanı Optimizasyonu nasıl yapılacağı sorusu geliyor. Bu yazımda bu işlemi manuel olarak yapmayı anlatacağım.

WordPress Veri Tabanı Optimizasyonu Nasıl Yapılır ?

Bunun birçok farklı yöntemi var, veri tabanı ile ilgili hiçbir bilgisi olmayan, tecrübesiz kullanıcılar eklentiler ile veri tabanlarını optimize edebilirler. Bilinen ve benim de zamanında kullandığım birkaç WordPress Veri Tabanı Optimizasyon Eklentilerini aşağı da listeledim. İsterseniz bu eklentileri kullanabilir dilerseniz birazdan yazımda anlatacağım manuel olarak WordPress Veri Tabanı Optimizasyonu yapabilirsiniz.,

WordPress Veri Tabanı Optimizasyon Eklentileri:

  1. Optimize Database after Deleting Revisions 
  2. Clean Up Optimizer – Clean & Optimize
  3. WP-Optimize
  4. Clean Up Booster – Optimize DB & WordPress
  5. WP-Sweep

Yukarı da sıraladığım eklentiler güncel olan ve bir süre kullandığım eklentiler. Ancak, zaten veri tabanımızın optimize edilmesine ihtiyaç duymasının sebebi gereksiz eklenti kullanımı değil miydi ? Yani, o kadar eklenti kuruyor ve kaldırıyoruz ki bütün bu yaptığımız işlemlerin hepsi veri tabanımızda kalıntı bırakıyor belki hemen farkına varamıyoruz ancak belli bir süre sonra o kalıntılar iyice çoğalıyor ve veri tabanımızı olması gerektiğinden fazlaca bir yük bindiriyor haliyle sitemiz yavaş çalışıyor, işlemlerimiz geç yapılıyor.

Sadece eklentilerden kaynaklı kalıntılar bahsetmiyoruz. Yazdığımız bir yazıyı yazmaktan vazgeçtiğimizde ve bu yazıyı sildiğimiz de ne yazık ki tam anlamıyla sistemimizden silinmiyor, WordPress’in oto drafts adını verdiği, oto kayıt etme özelliği yazdığınız her kelimeyi belli aralıklarla veri tabanınıza kayıt ediyor. Bu özellik sizi bazen birçok sıkıntıdan kurtarabiliyor, örneğin bir anda elektrik kesintisi yaşadığınızda yazınız kaybolmuyor oto kayıt ve tarayıcı belleğine alma özelliği sayesinde yazınız kaybolmadan geri alınabiliyor. Bu ve buna benzer özelliklerden dolayı bir süre sonra veri tabanınızda gereksiz alan doldurmaya başlıyor. Bu gereksiz verileri silmek için adım adım manuel olarak yapılacak işlemleri anlatmaya geçelim isterseniz.

WordPress Veri Tabanı Optimizasyonu [Manuel]

Sitenizin barındığı hosting paketinde kullandığınız yönetim paneline giriş yapın  (Cpanel, Plesk Panel vb). Daha sonra bu kontrol paneliniz’den veri tabanı kısmında bulunan phpMyAdmin sayfanızı açın ve wordpress sitenizin kurulu olduğu veri tabanını bulup aşağıda ki komutları tarif ettiğim şekilde çalıştırın.

phpMyAdmin’e giriş yaptıktan sonra sol tarafta veri tabanı isminize tıklayın ve açılan sayfada üst kısımda ki SQL yazısına tıklayıp, aşağıda vereceğim veri tabanı sorgu komutlarını tek tek girin.

Önemli: Aşağıda ki adımları yapmadan önce lütfen veri tabanınızın yedeğini alınız, yedek almadan hiçbir şekilde işlem yapmayın. Yedeğinizi alın, koyun bir köşeye sağlamda dursun olası bir sorunda aldığınız yedeği tekrar kurup, sitenizi kullanmaya devam edebilirsiniz.

Adım 1: WordPress Çöp (Trash) Tablosunda ki Kullanılmayan Verileri Temizlemek

Bilgilendirme: SQL komutlarında yer alan wp_ etiketi sizin wordpress veri tabanınızın tablo ön ekidir. Standart olarak wordpress kurulumunda gelen yapı için komutlar hazırlanmıştır. Eğer, bu tablo ön eki sizde farklı ise komutları çalıştırmadan önce kendi yapınız ile değiştirmeyi unutmayın.

Aşağıda verdiğim komutu SQL sekmesine tıklayıp, sorgu alanına yapıştırıp, GİT butonuna basarak komutu çalıştırarak, WordPress’de sildiğiniz gereksiz tüm yazı,resim,sayfa,ayar vb gereksiz çöp kalıntılar temizlenecektir.

DELETE FROM wp_posts WHERE post_status = "draft";
DELETE FROM wp_posts WHERE post_title = "Auto Draft";
DELETE wp_posts FROM wp_posts
LEFT JOIN wp_posts child ON (wp_posts.post_parent = child.ID)
WHERE (wp_posts.post_parent <> 0) AND (child.ID IS NULL);

Adım 2: Silinmiş Etiketleri (Tags) Temizlemek

Yazılarınıza ekleyip, daha sonra da sildiğiniz etiketler geçici olarak veri tabanınızda kayıt edilir. Bunları sistem otomatik olarak 30 günde bir temizler ancak bazen eksik kalabiliyor, tam olarak temizleyemiyor bundan dolayı manuel olarak aşağıda ki komutu çalıştırarak temizlemeniz gerekir.

DELETE FROM wp_term_relationships
WHERE NOT EXISTS (
SELECT * FROM wp_posts
WHERE wp_term_relationships.object_id = wp_posts.ID);

Adım 3: Silinen Yazı Kalıntılarını Temizlemek 

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

Adım 3.1

DELETE FROM wp_posts WHERE post_type = "revision"

Adım 4:  Gereksiz Yorum (Akismet Spam Comments) Temizliği

SELECT * FROM wp_commentmeta WHERE comment_id NOT IN ( SELECT comment_id FROM wp_comments );
DELETE FROM wp_commentmeta WHERE comment_id NOT IN ( SELECT comment_id FROM wp_comments );
SELECT * FROM wp_commentmeta WHERE meta_key LIKE '%akismet%';
DELETE FROM wp_commentmeta WHERE meta_key LIKE '%akismet%';

Evet, 4 adımda basit bir şekilde manuel olarak WordPress Veri Tabanı Optimizasyonu yapmış olduk. Daha detaylı olarak ileri de sistemin kendisinin bıraktığı veri tabanı kalıntılarını temizleyerek daha sağlam veri tabanı optimizasyonu sağlayacağız.

Yazıda eksik veya hatalı olan yer var ise lütfen yorum bölümünden belirtiniz. Sizlerin de kullandığı farklı yöntem veya eklentiler var ise onları da belirtmeyi unutmayın, paylaşımcı olun 🙂

Esen kalın efenim ^^

Bir önceki yazım olan WP Fastest Cache + Cloudflare'yi Birlikte Kullanmak başlıklı yazımda Cloudflare, Cloudlflare İle Ücretsiz CDN Hizmeti ve WordPress Cache Eklentisi hakkında bilgiler verilmektedir.

3 yorum

  1. Fakir Yazar   •  16 Şubat 2017 - 18:42

    Eklentiden çok manuel yapmak daha iyi hocam arada sırada aklınıza gelince manuel olarak onarmak optimizasyon yapmam sorguların hızlanması için gayet iyi. Eklenti yüklersen server a bir yük daha binecek. Boşuna eklenti kurmaya server ın cpu sunu yormaya gerek yok. 🙂

    Yinede bilgisi olmayan arkadaşlar için eklenti yardımı ile de olabilir konu ve bilgiler için teşekkürler.

    • Hüseyin Körbalta   •  16 Şubat 2017 - 20:21   Yazar

      Rica ederim, yararım olduysa ne mutlu bana 🙂
      Bu tarz veritabanı işlemlerinde bilgisi olmayan ya da tecrübesi bulunmayanlar için eklentiler iş görüyor ancak manuel yapmak en sağlıklısı ve doğrusudur.

  2. Doğukan Eryılmaz   •  21 Şubat 2017 - 17:15

    Çok teşekkür ederim bu yazın için, ben bilmiyordum manuel yapmayı hep eklenti ile hallediyordum artık bundan sonra manuel yapmaya başladım 🙂

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir