..

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 Fedora Silverblue’da En Son Nvidia Sürücüleri Nasıl Yüklenir

Fedora Silverblue’da En Son Nvidia Sürücüleri Nasıl Yüklenir

Hep okuduğum blog yazıları ve talimatlara dayanarak Fedora Silverblue’ya Nvidia sürücülerini yüklemenin iddialı ve zor bir girişim olduğu yönünde yanlış bir varsayımda bulundum. Ama yanılmışım gelin basit bir şekilde bu iş nasıl yapılır görelim. Fedora Silverblue 30’dan başlayarak, Nvidia sürücülerini yükleme yöntemi işlevsel olarak Fedora Workstation’dakiyle aynıdır , sadece Silverblue’nun dosya sisteminden kaynaklanan birkaç küçük değişiklik vardır. […]

xtechnology_logo
X Technology
Cover Image for Petro-Dolar Sistemi: Tarihi, Geleceği ve Küresel Etkileri

Petro-Dolar Sistemi: Tarihi, Geleceği ve Küresel Etkileri

‘’Yeni bir dünya kurulur ve Türkiye bu dünyada yerini alır.” İsmet İnönü Dünya COVID-19 ve bölgesel çatışmalarla sarsılırken ekonomik sistem ve onun dengeleri de temel sorgu odaklarından biri haline geldi. Gelir ve servet dağılımındaki eşitsizliğin de artmasıyla mevcut Liberal ticaret ve sermaye sistemi çatırdamaya başladı. Sermaye ve ticaretin bir yansıması olarak da küresel ödemeler dengesi […]

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