26 Ağustos 2014 Salı

Wordpress SQL Tablosu phpMyAdmin de WP_PostMeta Temizleme

Dünden buyada şişmiş olan SQL tablolarını temizlemeye çalışıyorum epey bi elle uğraştım. SQL tablolarını inceleyip kafama yatmayan verileri ARA yaparak kimisininde deneme yanılma yolu ile sildim.

50 MiB    WP_PostMeta tablosunu 22.1 MiB    indirdim. Satır sayısı hala 77,587    'de.


phpMyAdmin üzerinden,
SİLDİĞİM BAZI KEYLER (dünden buyana siliyorum aklıma gelenler bunlar.)


phpMyAdmin wordpress tablolarına giriş yaptım.

localhost >> ..._tabloadi>> wp_postmeta seç
ARA
meta_key     karşısına (silinecek key verilerini) yaz LIKE seçili
Seçeneklerden Sayfa başına satır sayısı ben 1000 yaptım
GİT
Çıkan sonuşlardan, hepsini seç
SİL

Sildiğim ve henüz bir problem yaşamadığım meta_key satırları.
aa
hh
jj
mm
mn
cur_aa
cur_hh
cur_jj
cur_mm
cur_mn
closedpostboxesnonce
excerpt (meta_key dosyasında olması ilginç, önce denedim sonra hepsini sildim. Şimdilik sorun yok.)
samplepermalinknonce
edit_date (herhalde yazı düzenleme tarihi diye düşünerek 110 kayıt sildim.)
_status
save_menu

------------------

Çalışmalarımı aşağıdaki kodlarla devam ettireceğim tekrar lazım olur diye not ediyorum.

SQL Tablosunda kullanılmayan etiketleri (post tags ) temizleme.
Etiket kaydedilmiş ama bağlı yazısı yok, nasıl olduysa oluyor işte.

SQL kod bölümüne aşağıdaki kodları yapıştırdım GİT butonuna bastım


DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE COUNT = 0 );
DELETE FROM wp_term_taxonomy WHERE term_id NOT IN (SELECT term_id FROM wp_terms);
DELETE FROM wp_term_relationships WHERE term_taxonomy_id NOT IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);

SQL kod bölümüne aşağıdaki kodları yapıştırdım GİT butonuna bastım  ve optimize ettim.
OPTIMIZE TABLE `wp_terms` , `wp_term_taxonomy` , `wp_term_relationships`;

-----------------------------
wp_postmeta tablosundaki verileri gruplayarak sayalım



SELECT meta_key, COUNT(meta_key) FROM wp_postmeta GROUP BY meta_key;


SQL  (SQL sorgusu çalıştır) kod bölümüne

SELECT meta_key, COUNT( meta_key )
FROM wp_postmeta
GROUP BY meta_key
LIMIT 0 , 500

güzel bir kod şimdi meta_key kolonunda ki verileri ve kullanma sayısın görebiliyorum. Gerisi yorumlamaya kaldı.

şimdi aşağıdaki kodu deniyorum.
DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock';
DELETE FROM wp_postmeta WHERE meta_key = '_edit_last';

SONUÇ

DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock';# 1586 satır etkilendi.
DELETE FROM wp_postmeta WHERE meta_key = '_edit_last';# 1546 satır etkilendi.

Bu kadar çok satır etkilenmesi beni korkuttu, bakalım sitemiz ne durumda.

Bir sorun yok görünüyor. Hemen bir dışa aktarla bir yedek daha alıp araştırmaya devam ediyoruz.

----------------
wp_options tablosundan feed cache dosyalarını silmekte sakınca görmedim ve aşağıdaki kodla 19 satır silindi.


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

------------------
İşi bu kodla başlamıştım. SQL temizleme deyince Türkçe bloglarda tüm detayları ile yer alıyor, bizde not edelim.

DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'

Hiç yorum yok:

Yorum Gönder