WordPress veritabanı tablolarındaki yetim anahtarlarını nasıl silebilirim?


10

Özellikle tabloda wp_options. Neredeyse 2 yıllık blog üretiminden sonra çok artmış gibi görünüyor ve orada kaç tane saçmalık olduğunu bilmiyorum.

WordPress 3.0 ile çalışan bir eklenti veya yetim anahtarlarını / satırlarını aramak için güvenli bir sorgu çalıştırıyor musunuz?

Yanıtlar:


8

Herhangi bir tema veya eklenti wp_optionstabloya seçenekler ekleyebileceğinden, kullanılmayan her şeyi silmek ve bu şeyleri silmek için% 100 kesin bir sorgu yoktur . Yine de, biraz çaba ile neyin kullanılmadığı hakkında oldukça iyi bir fikir edinebilir ve hangilerinin silineceğini ve hangilerinin silinmeyeceğini manuel olarak belirleyebilirsiniz.

Aşağıdaki kodu temanızın functions.phpdosyasına geçici olarak ekleyebilir ve ardından herkese açık sitenizdeki her (tür) sayfayı ve daha da önemlisi yönetici konsolundaki tüm yönetici sayfalarını ziyaret edebilirsiniz. Bunu yaptıktan sonra , hangi seçeneklerin sıfıra eşit olduğunu görmek için wp_optionstablonuzu açıp alana bakabilirsiniz use_count(aşağıdaki kod tarafından eklenmiştir) use_count(kullanım sayısı çoğunlukla 1'den büyük herhangi bir şey okunmamış veya güncellenmiş dışında anlamsızdır) bu kodu eklediğinizden beri en az bir kez.)

global $wpdb;
header('Content-Type:text/plain');
$results = $wpdb->get_results("SHOW COLUMNS FROM wp_options WHERE Field='use_count'");
if (count($results)==0) {
    $wpdb->query("ALTER TABLE {$wpdb->options} ADD COLUMN use_count int UNSIGNED NOT NULL DEFAULT '0' AFTER autoload");
}

add_action('all','monitor_get_option_usage');
function monitor_get_option_usage($filter){
    if (preg_match('#^option_(.*)$#',$filter)) {
        increment_option_use_count(substr($filter,7));
    }
}
add_action('updated_option','monitor_update_option_usage');
function monitor_update_option_usage($option){
    increment_option_use_count($option);
}
function increment_option_use_count($option) {
    global $wpdb;
    $wpdb->query("UPDATE {$wpdb->options} SET use_count = use_count + 1 WHERE option_name = '$option'");
}

Bununla muhtemelen, uzun zamandır eklentilerle, eski temalarla ve hatta erken eklediğiniz ancak artık kullanmadığınız seçeneklerle ilişkili seçenekleri belirleyebileceksiniz. Hepsini bir yedeklemeye aktarın (her ihtimale karşı) ve ardından rahatça sildiğiniz dosyaları silin. İşiniz bittiğinde, use_countalanı kaldırabilirsiniz (isterseniz, orada olması için zarar vermez) ve ayrıca yukarıdaki kodu da functions.phpdosyanızdan kaldırabilirsiniz .

Bu hala mükemmel olmasa da hiçbir şeyden çok daha iyi. Umarım yardımcı olur?


Ben ediyorum şiddetle bunun için memcached / incr () yerine db yazıyor potansiyel büyük miktarda önerilir.
Denis de Bernardy

3
@Denis - Memcached, çoğu WordPress sitesinin barındırıldığı paylaşılan bir sunucuda bile mümkün olmayan gelişmiş sunucu kurulumu gerektirdiğinden ve bu bir kerelik veya ara sıra tanılama rutini olduğu için neden ihtiyacı vurguladığınızı görmüyorum Bu kullanım örneği için memcached için ? Belki bir şey eksik, neden bir VPS veya adanmış bir sunucuya geçmek zorunda ve ayrıntılı bir şekilde nasıl yapılandırılacağını öğrenmek veya almak için birileri almak için bunu yapmak gerekir sadece nadiren çok sayıda veritabanı isabet önlemek için bunu yapmak kullanılmış bakım rutini?
MikeSchinkel

4

Eklenti Temizlik Seçenekleri benim için iyi çalıştı. Yazarın eklentinin açıklaması ihtiyacınız olana uyuyor gibi görünüyor: "Artık seçenekleri bulur ve bunların wp_options tablosundan kaldırılmasına izin verir."

Henüz kişisel olarak WP-Optimize'i denemedim , ancak bu da umut verici görünüyor. Ve WP 2.7'yi desteklediğini söylüyor (oysa Clean Options sadece WP 2.3 için kesin bir destekten bahsediyor), güzel!


2

Bu mutlaka sorunları ortadan kaldırmaz, wp_optionsancak 3.0 sitelerimdeki birçok veritabanı boyutlandırma sorununu düzeltmek için WP-Optimize kullandım . Gereksiz posta düzeltmelerini, spam yorumlarını temizler ve birçok sorunu otomatik olarak düzeltebilir. Ana blogumda, DB 30MB'dan 6MB'ın altına düştü ve şimdi çok daha sorunsuz çalışıyor.


1

Hem Temiz Seçenekler'i hem de WP_Optimize'ı sitemde çalıştırıyorum ve combo, veritabanını mükemmel durumda tutmanın müthiş bir işini yapıyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.