При активной работе сайта на WordPress со временем в базе данных накапливаются неиспользуемые таблицы, которые остались после удаления плагинов или тем. Они занимают место и могут замедлять работу сайта. В этом руководстве мы подробно разберём, как обнаружить эти таблицы и корректно их удалить, чтобы не повредить сайт.
Почему появляются неиспользуемые таблицы в базе данных WordPress
При установке плагинов и тем в базе данных создаются собственные таблицы для хранения данных. Если плагин удаляется не через полноценное удаление с очисткой данных, или тема перестаёт использоваться, таблицы остаются. Они не удаляются автоматически, поскольку WordPress не трогает данные, которые не управляет напрямую.
Это приводит к тому, что с течением времени база разрастается. Особенно часто такое случается с крупными плагинами, например, с плагинами кеширования, аналитики или сложными конструкторами страниц.
Удаление этих таблиц вручную требует аккуратности, чтобы случайно не удалить важные системные таблицы WordPress.
Как найти неиспользуемые таблицы в базе данных WordPress
Для начала необходимо получить список всех таблиц в базе данных WordPress. Обычно таблицы имеют префикс, указанный в wp-config.php, например, wp_. Основные системные таблицы WordPress это:
- wp_posts
- wp_postmeta
- wp_users
- wp_usermeta
- wp_options
- wp_terms
- wp_term_taxonomy
- wp_term_relationships
- wp_comments
- wp_commentmeta
Все остальные таблицы, особенно с нестандартными названиями, скорее всего созданы плагинами или темами.
Для просмотра таблиц можно использовать phpMyAdmin или выполнить SQL-запрос:
SHOW TABLES LIKE 'wp_%';Далее нужно проанализировать названия таблиц. Например, таблицы с названием wp_woocommerce_* явно относятся к WooCommerce. Если вы не используете этот плагин, эти таблицы можно удалить.
Автоматизированный поиск неиспользуемых таблиц с плагином Clearfy Pro
Плагин Clearfy Pro помогает оптимизировать базу данных, в том числе найти и удалить остатки данных от удалённых плагинов. Он анализирует структуру базы и предлагает безопасное удаление неиспользуемых таблиц.
Преимущества использования Clearfy Pro:
- Интерфейс без необходимости заходить в базу данных напрямую.
- Автоматические рекомендации по удалению.
- Резервное копирование перед удалением.
Это удобный способ для тех, кто не хочет рисковать при ручном удалении таблиц.
Ручное удаление неиспользуемых таблиц через WP-CLI
Если вы предпочитаете работать через консоль, можно использовать WP-CLI и команду для выполнения SQL-запросов.
Для начала выведите список таблиц:
wp db tables --all-tablesДалее определите таблицы, которые следует удалить. Чтобы удалить таблицу, выполните:
wp db query "DROP TABLE IF EXISTS wp_plugin_table_name;"Замените wp_plugin_table_name на название таблицы, которую хотите удалить.
Важно: перед удалением сделайте резервную копию базы данных:
wp db export backup.sqlПример функции удаления таблиц в плагине для WordPress
Если вы разрабатываете плагин и хотите добавить возможность очистки своих таблиц при деактивации, можно использовать следующий пример кода:
function wproot_delete_plugin_tables() {
global $wpdb;
$tables = [
$wpdb->prefix . 'myplugin_table1',
$wpdb->prefix . 'myplugin_table2',
];
foreach ($tables as $table) {
$wpdb->query("DROP TABLE IF EXISTS {$table}");
}
}
register_deactivation_hook(__FILE__, 'wproot_delete_plugin_tables');Этот код удалит указанные таблицы при деактивации плагина, что поможет избежать накопления мусора в базе.
Как проверить, что удаление прошло безопасно
После удаления таблиц важно проверить работоспособность сайта:
- Проверьте основные страницы и функционал.
- Если удаляли таблицы плагинов, убедитесь, что плагин полностью деактивирован или удалён.
- Проверьте логи ошибок сервера.
При любых проблемах восстановите базу из резервной копии и повторите процесс более аккуратно.
Заключение по удалению неиспользуемых таблиц базы WordPress
Удаление неиспользуемых таблиц — важная задача для поддержания скорости и чистоты базы данных WordPress. Используйте комбинацию ручного анализа, WP-CLI и специализированных плагинов, например Clearfy Pro, чтобы сделать процесс безопасным и эффективным.