Как я могу удалить потерянные ключи в таблицах базы данных WordPress?


В частности, в таблице wp_options. После почти 2 лет создания блога он, кажется, значительно увеличился, и я не знаю, сколько там дерьма.

Знаете ли вы плагин, который работает с WordPress 3.0 или безопасный запрос для запуска для поиска потерянных ключей/строк?

Author: Krzysiek Dróżdż, 2010-08-11

4 answers

Нет запроса, который на 100% наверняка удалит все неиспользуемое и не удалит эти вещи, потому что любая тема или плагин могут добавить параметры в таблицу wp_options. Тем не менее, приложив немного усилий, вы можете получить довольно хорошее представление о том, что не используется, а затем вручную решить, какие из этих вещей удалять, а какие нет.

Вы можете временно поместить следующий код в файл вашей темы functions.php, а затем посетить каждую (тип) страницу на вашем общедоступном сайте и многое другое важно отметить все страницы администратора в консоли администратора. Как только вы это сделаете, вы можете открыть свою таблицу wp_options и посмотреть на поле use_count (добавленное кодом ниже), чтобы увидеть, какие параметры use_count равны нулю (количество использований в основном бессмысленно, кроме того, что все, что больше 1, было прочитано или обновлено по крайней мере один раз с момента добавления этого кода.)

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'");
}

С помощью этого вы, вероятно, сможете определить параметры, которые связаны с давно исчезнувшими плагинами, прежними темами и даже вариантами свой собственный вы добавили на ранней стадии, но больше не используете. Экспортируйте их все в резервную копию (на всякий случай), а затем удалите те, которые вам удобно удалять. Как только вы закончите, вы можете удалить поле use_count (если хотите, не помешает, чтобы оно было там), а также удалить приведенный выше код из вашего файла functions.php.

Хотя это все еще не идеально, это намного лучше, чем ничего. Надеюсь, это поможет?

 8
Author: MikeSchinkel, 2010-08-12 04:02:37

Плагин Чистые параметры хорошо сработал для меня. Авторское описание плагина, похоже, соответствует тому, что вам нужно: "Находит потерянные параметры и позволяет удалять их из таблицы wp_options"

.

Я еще не пробовал WP-Оптимизировать лично, но это тоже выглядит многообещающе. И в нем говорится, что он поддерживает WP 2.7 (в то время как в чистых опциях упоминается только определенная поддержка WP 2.3), приятно!

 4
Author: Mike Lee, 2010-08-12 01:19:16

Это не обязательно устранит проблемы с wp_options, но я использовал WP-оптимизацию , чтобы исправить множество проблем с размером базы данных на моих сайтах 3.0. Он удаляет ненужные изменения в сообщениях, спам-комментарии и может автоматически устранять множество проблем. В моем основном блоге БД была уменьшена с 30 МБ до чуть менее 6 МБ и теперь работает гораздо более плавно.

 2
Author: EAMann, 2010-08-11 20:28:21

Я запускаю как опции очистки, так и WP_Optimize на своем сайте, и комбинация отлично справляется с поддержанием базы данных в отличной форме.

 1
Author: Keith S., 2010-08-13 16:03:47