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.
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.,
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.
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.
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);
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);
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;
DELETE FROM wp_posts WHERE post_type = "revision"
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 ^^
Yazı Bağlantısını Kopyala & Paylaş
Bu yazıya şimdiye kadar 3 Yorum yapılmıştır.
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.
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.
Ç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