..

WordPress Veritabanı Optimizasyonu: SQL Sorgularıyla Hızlı Temizlik

Cover Image for WordPress Veritabanı Optimizasyonu: SQL Sorgularıyla Hızlı Temizlik
xtechnology_logo
X Technology

İçerik Kategorisi:Genel

Herkese selamlar. Uzun zamandır talep ettiğiniz içeriği hazırlamış bulunuyoruz! Pek çoğumuz kullandığımız tabanlı web sitelerimizde, birden çok eklenti kullanıyor, zaman zaman tema değişikliği yapıyor, yeni sayfa ve yazılar ekleyip, bir çok sayfa ve yazıyı da siliyoruz. Peki hiç merak ettiniz mi bu sayfa ve yazıların, eklenti ve temaların veritabanındaki kalıntıları nereye gidiyor? Kullandığımız tüm plugin ve yaptığımız işlemlerin revision kalıntıları, meta kalıntıları ne yazık ki WordPress veritabanımızda barınmaya devam ediyor. Örnek bir veritabanına giriş yaptığınızda özelikle “wp-postmeta” tablonuzda aşırı bir satır fazlalığı ve şişkinlik olduğunu görürsünüz. Bunun temel sebebi ise yazdığınız her sayfa ve içeriğin gerek önizleme ve taslak şablonlarının, gerekse metalarının bu tablolarda saklanıyor olmasıdır.

WordPress Veritabanını Ne Şişiriyor Bu kadar?

Bu soru üzerine epeydir kafa patlatıyorum diyebilirim. Çalıştığım firmalarda ve danışmanlık verdiğim pek çok kurumun veritabanındaki şişkinlikleri temizlemek için pek çok yol denedim. Bir gün oturdum ve tüm günümü sadece veritabanındaki tablo ve satırları incelemeye ayırdım. Gördüm ki WordPress veritabanını şişiren başlıca hatalardan birisi, yazı ve sayfaların çeşitli eklentilerle clone yani kopyalanarak hazırlanması.

WordPress üzerinde bir sayfa ve yazı açtığınız zaman wp-postmeta içerisinde o sayfa/yazıyla alakalı 10-15 aralığında satır eklenmekte. Bu satırların içerisinde yazının başlığı, görsel bilgileri, metaları, url, etiket vb. bilgileri yer almakta. Bunun haricinde aynı içerik için taslak, önizleme gibi revision bilgileri de kaydedilmekte. Siz bir içeriği kopyala dediğiniz zaman veritabanında bu içeriğe ait tüm bilgi ve satırları kopyalayarak ekstra yeni satırları da eklemekte. Bu yüzden WordPress veritabanınızda her içerik kopyalamasında artarak çoğalan satır ve revision çöplüğü oluşmakta.

Bunun yanı sıra herhangi bir içeriği sildiğini zaman o içerik ve eklentiyi kaldırdığınız zaman o içerik ve eklentiye dair tüm meta bilgileri veritabanında saklanmaya devam eder. Bunlar da gereksiz bir veritabanı yükü oluşturur. İşte bu başlığımızda tüm bu yükleri, silinmiş yahut kırık veritabanı tablolarını onarmaya dair oldukça pratik SQL sorguları paylaşacağız. Burada yer alan SQL sorgularını veritabanı “Sorgu” kısmından çalıştırarak veritabanınızı büyük oranda temizleyebilirsiniz. Haydi başlayalım!

Postlardan Kalan Revision Artıklarını Temizleme

WordPress web sitenizde sildiğiniz herhangi bir içeriğin revision artıkları veritabanında kalmaktadır. Bu artıkları temizlemek için aşağıdaki sorguyu çalıştırabilirsiniz:

DELETE FROM wp_posts WHERE post_type='revision';
SQL

Taslaklarda Kalan Yazı ve Sayfaları Temizleme

Bu sorguyu çalıştırdığınız zaman taslak statüsünde yer alan tüm içerikleriniz temizlenir. Eğer önemli taslaklarınız varsa bu sorguyu çalıştırmadan önce önemlileri yayına alıp sorguyu çalıştırdıktan sonra tekrar taslağa alabilirsiniz.

DELETE FROM wp_posts WHERE post_status = 'draft';
SQL

Çöpte Yer Alan Yazı ve Sayfaları Temizleme

WordPress yazı ve sayfa çöplüğünde kimi zaman binlerce içerik kalmakta ve temizlemekte büyük güçlük çıkarmaktadır. Bu içerikleri toplu bir şekilde temizlemek için aşağıdaki sorguyu kullanabilirsiniz:

DELETE FROM wp_posts WHERE post_status = 'trash';
SQL

Kırık/Bozuk Tabloları Onarma

Kimi zaman bir eklentiyi ya da temayı silip yeniden kurduğunuz zaman, o eklenti ve temanın daha önceki kalıntıları, tablolarınızda bozulma ve kırılmalara sebep olmaktadır. Bu bozulmaları temizlemek için aşağıdaki sorguyu kullanabilirsiniz:

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

Spam Yorumları Temizleme

Her ne kadar spam yorumları engellemek için çeşitli eklentiler kullansak da bazen spam yorum kategorisinde onbinlerce yorum kalıntısı durabiliyor. Bu yorumları toplu bir şekilde temizlemek için aşağıdaki sorguyu çalıştırabilirsiniz:

DELETE FROM wp_commentmeta
WHERE comment_id NOT IN
( SELECT comment_id FROM wp_comments );
SQL

Postmeta’da Kalan Çöpleri Temizleme

Yukarıda bahsettiğimiz wp-postmetada kalmış pek çok çöp ve kalıntı dosyasını aşağıdaki sorguyla rahatlıkla temizleyebilirsiniz:

DELETE wp_postmeta FROM wp_postmeta
LEFT JOIN wp_posts ON
(wp_postmeta.post_id = wp_posts.ID)
WHERE (wp_posts.ID IS NULL);
SQL

Ardından bu sorguyu çalıştırın:

DELETE FROM wp_postmeta
WHERE meta_key IN ('_edit_lock','_edit_last');
SQL

Transient Kalıntılarını Temizleme

Çeşitli ayar ve transient kalıntılarını temizlemek için bu sorguyu çalıştırabilirsiniz:

DELETE FROM wp_options
WHERE option_name LIKE ('_transient_%');
SQL

Ardından bu sorguyu çalıştırın:

DELETE FROM wp_options
WHERE option_name LIKE ('_transient%_feed_%');
SQL

Silinmiş Yazı ve Sayfaların Kalıntılarını Temizleme

WordPress web sitenizde silmiş olduğunuz pek çok sayfa ve yazının ne yazık ki postmeta içerisinde kalıntıları durmaktadır. İşte aşağıdaki sorgu ile, wp-posts ile wp-postmeta arasında eşleşmeyen ne kadar kalıntı içerik çöpü varsa tamamını temizleyebilirsiniz.

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);
SQL

Ardından bu sorguyu çalıştırın:

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

Temizlik Sonrası Tüm Tabloları İyileştirme

Harika! Başarıyla veritabanınızdaki gereksiz tüm kalıntıları temizlediniz. Ancak işimiz bitti mi? Elbette hayır! Son 1 işimiz daha kaldı, o da tüm tabloları iyileştirmek. Böylece yaptığımız işlemlerde ortaya çıkan ne kadar kalıntı varsa ebediyen veritabanımızdan silinmiş olacaklar. Veritabanındaki tablolarımızı iyileştirmek için aşağıdaki sorguyu kullanabilirsiniz:

OPTIMIZE TABLE
`wp_commentmeta`,
`wp_comments`,
`wp_options`,
`wp_postmeta`,
`wp_posts`,
`wp_term_relationships`;
SQL

Hepsi bu kadar! Artık daha temiz, daha güvenli ve daha hızlı bir veritabanına sahipsiniz!

İçerik Etiketleri:Wordpress


İlginizi çekebilir.

Cover Image for Kullandığım 5 Mega ChatGPT İstemi

Kullandığım 5 Mega ChatGPT İstemi

ChatGPT’nin Süper Güçlerini görmek veya gerçek potansiyelini bilmek istiyorsanız, bu makaleyi okumalısınız çünkü aşağıda en iyi ve en çok kullanılan 5 İstemimi paylaştım. Bunları günde birkaç kez kullanıyorum ve eğer siz de kullanıyorsanız, eminim ki sizin de favorileriniz arasına gireceklerdir. O halde daha fazla vakit kaybetmeden işte karşınızda. #1: Yazma Analizi ve İyileştirme İstemi Tam […]

xtechnology_logo
X Technology
Cover Image for İnsanlık Tarihi: Nuh Tufanı ve Lemurya Bağlantısı

İnsanlık Tarihi: Nuh Tufanı ve Lemurya Bağlantısı

İnsanlık tarihi, bilindiği gibi Adem‘in yeryüzüne gönderilmesiyle başlamıştır. İlk insan ve ilk peygamber Adem, kendisine saygı gösterilmesi emrini tereddütle karşılayan Azazel‘in tuzağına düşmüş ve cennetten çıkarılmıştır. Böylece Adem ve Havva, tek yeşil gezegen olan Dünya’da; cinlerle ve Sonsuz Yüce’nin lanetiyle iblisleşen Azazel’le birlikte yaşamaya başlamıştır. Dünya’da çok uzun zamandan beri İblis‘in de mensubu bulunduğu cinler yaşamaktaydı. Cinlerin ne zaman yaratıldığını ve Dünya’dan önce nerelerde; hangi gezegenlerde yaşadıklarını bilmiyoruz. Ancak […]

xtechnology_logo
X Technology
kitap
resim
Ahmet İnanç KOCA - Founder and CEO of  XTechnology
Ahmet İnanç KOCA
XTechnology Yöneticisi, Yazılım GeliştiriciGeleceği kodlamaktan zevk alan bir yazılımcı

Hatalarımızdan kazanın

Mükemmel bir iş yoktur, sadece çok sayıda denenmiş girişim vardır.

XTechnology`i`nin kurucusu Ahmet İnanç KOCA`ı`dan Yanlız Başına Mücadele Edenler Rehberi”—adlı itaatkar olmak yerine büyük hayaller kurmayı tercih eden idealpereset ama tek başına savaşan girişimciler için bir manifesto olan bu kitabımızdan çok şey öğreneceksiniz.
Daha fazlası burada...

resim