Как я могу удалить потерянные ключи в таблицах базы данных WordPress?
В частности, в таблице wp_options
. После почти 2 лет создания блога он, кажется, значительно увеличился, и я не знаю, сколько там дерьма.
Знаете ли вы плагин, который работает с WordPress 3.0 или безопасный запрос для запуска для поиска потерянных ключей/строк?
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
.
Хотя это все еще не идеально, это намного лучше, чем ничего. Надеюсь, это поможет?
Плагин Чистые параметры хорошо сработал для меня. Авторское описание плагина, похоже, соответствует тому, что вам нужно: "Находит потерянные параметры и позволяет удалять их из таблицы wp_options"
.Я еще не пробовал WP-Оптимизировать лично, но это тоже выглядит многообещающе. И в нем говорится, что он поддерживает WP 2.7 (в то время как в чистых опциях упоминается только определенная поддержка WP 2.3), приятно!
Это не обязательно устранит проблемы с wp_options
, но я использовал WP-оптимизацию , чтобы исправить множество проблем с размером базы данных на моих сайтах 3.0. Он удаляет ненужные изменения в сообщениях, спам-комментарии и может автоматически устранять множество проблем. В моем основном блоге БД была уменьшена с 30 МБ до чуть менее 6 МБ и теперь работает гораздо более плавно.
Я запускаю как опции очистки, так и WP_Optimize на своем сайте, и комбинация отлично справляется с поддержанием базы данных в отличной форме.