Как очистить базу данных WordPress

очистить базу данных

Как очистить базу данных WordPress, если со временем в ней накапливается много лишней информации, объём которой часто достигает таких размеров, что сайт начинает зависать и может даже упасть. Сегодня рассмотрим несколько приёмов по очистке и оптимизации БД Вордпресс.

База данных Вордпресс напоминает емкость, в которой хранятся все материалы сайта: посты, страницы, их ревизии, комментарии, в том числе и помеченные как спам, а также все настройки тем и плагинов. Поэтому, если сайт используется продолжительное время, скорее всего в его базе данных имеются данные, которые можно удалить.

Хранение бесполезных данных приводит к раздуванию базы данных. Например, зачем хранить настройки темы, которая была удалена много лет назад? Очистка базы данных не только освобождает пространство, но и способствует увеличению скорости работы сайта.

Очистить базу данных WordPress можно несколькими различными способами, которые помогут оптимизировать БД. Рассмотрим несколько полезных запросов MySQL, которые можно выполнить в phpMyAdmin, а также пару полезных плагинов, которые помогут упростить задачу.

Внимание: Перед любым действием с базой данной, настоятельно рекомендуется создать полную резервную копию сайта.

Оптимизация базы данных Вордпресс с помощью phpMyAdmin

Существует несколько способов выполнения SQL-запросов в БД. Самым простым вариантом является phpMyAdmin. Получить к нему доступ обычно можно в панели управления хостингом в разделе «Базы данных».

Внутри php MyAdmin сразу переходим в раздел SQL.

очистить базу данных

Здесь мы и будем выполнять все SQL-запросы.

Обратите внимание, в примерах ниже используется дефолтный префикс таблиц Вордпресс — «wp_» Поэтому, прежде убедитесь, что префиксы таблиц вашей БД такие же. Если нет — просто меняйте их в запросах на свои.

Удалить старые плагины и данные

Начнем с удаления оставшихся данных от удалённых плагинов. В таблице wp_postmeta также можно обнаружить много других ненужных данных, которые можно почистить этим же запросом.

DELETE FROM wp_postmeta WHERE meta_key = ‘META-KEY-NAME’;

Вместо META-KEY-NAME нужно указать ключи удаляемых плагинов. Их можно найти в таблицах БД.

Удалить все ревизии

Ревизии в Вордпресс очень полезная функция. Но если авторы активно ей пользуются, в БД сохраняется очень много копий постов, которые хранятся и после его публикации.

Удалить разом все ревизии можно таким запросом:

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 )
LEFT JOIN wp_term_taxonomy d ON ( b.term_taxonomy_id = d.term_taxonomy_id)
WHERE a.post_type = ‘revision’
AND d.taxonomy != ‘link_category’;

Удалить все комментарии со спамом

Иногда комментариев со спамом становится столько, что вручную их удалить уже не удаётся. С помощью одного SQL-запроса можно удалить сразу все комментарии помеченные как «Спам».

DELETE FROM wp_comments WHERE comment_approved = ‘spam’;

Удалить все неподтвержденные комментарии

Если не хочется удалять вручную все неподтвержденные комментарии, их можно как и спам удалить одним запросом.

DELETE from wp_comments WHERE comment_approved = ‘0’;

Удалить все неиспользуемые теги

Удалить все теги, которые не связаны ни с одним постом можно следующим запросом:

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-запросом.

UPDATE wp_post SET post_content = replace(post_content, ‘[YOUR-SHORTCODE]’, » ) ;

Где YOUR-SHORTCODE — удаляемый шорткод.

Удалить пингбеки и трекбеки

Интересно, кто-нибудь вообще ими пользуется?

Перед запуском убедитесь, что вы их отключили в админке.

DELETE FROM wp_comments WHERE comment_type = ‘pingback’;
DELETE FROM wp_comments WHERE comment_type = ‘trackback’;

Удалить временные опции

Временные опции в Вордпресс позволяют кешировать часть данных в БД. Но иногда этот кеш тоже может сильно раздуться. Очистить его можно одним запросом.

DELETE FROM wp_options WHERE option_name LIKE (‘%_transient_%’)

Оптимизировать таблицы

Раз уж мы зашли в phpMyAdmin, можно заодно проверить и оптимизировать таблицы. Делается это очень просто.

Выбираем все таблицы и нажимаем «Optimize table»

очистить базу данных

Оптимизация базы данных Вордпресс с помощью плагинов

Для Вордпресс существует ряд плагинов, с помощью которых можно почистить и оптимизировать базу данных. Самые эффективные из них: WP-Optimize и WP-Sweep.

WP-Optimize

Самый популярный плагин для оптимизации баз данных Вордпресс с более чем 600 тыс. активных установок. Очень прост в использовании, управляется одной кнопкой.

очистить базу данных

В разделе «Table Information» выводится информация по текущим размерам таблиц базы данных и объем, который плагин сможет освободить. В «Настройках» можно запланировать автоматическую оптимизацию БД. Например, каждую неделю, две недели или месяц.

Плагин WP-Optimize очень прост в использовании. Главное, не забудьте перед его использованием создать резервную копию сайта или хотя бы БД.

Скачать плагин по ссылке: https://wordpress.org/plugins/wp-optimize/

WP-Sweep

Набирающий обороты плагин от Лестера Чена — известного разработчика Вордпресс.

очистить базу данных

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

В отличие от WP-Optimize, WP-Sweet для удаления использует функции Вордпресс, а не прямые запросы к базе данных. Это снижает вероятность пропуска каких-то ненужных данных. Однако, в WP-Sweep пока нет никакой автоматизации процессов.

Скачать плагин по ссылке: https://wordpress.org/plugins/wp-sweep/

В заключение

Вот несколько критериев, каждый из которых сам по себе является весомым поводом, чтобы задуматься об очистке базы данных:

  1. Если хостер сообщает о повышенной нагрузке.
  2. Появляются ошибки из-за нехватки памяти.
  3. Админка или сам сайт начинают тупить и долго делать обычные операции.
  4. Если сайту уже несколько лет.
  5. Если вы заметили, что размер базы данных неоправданно разросся, у меня одно время база весила 250Мб (!), потом дефрагментировалась до 112 Мб, а сейчас после чистки — 21 Мб
  6. Если на сайте под WordPress или блоге много статей, например, 100, 200, 300 и больше.
  7. Если вы часто редактируете статьи перед публикацией или после размещения на сайте (например, я могу одну статью на блоге редактировать 50 раз и более!).

Не забывайте перед внесением изменений в базу данных, всегда делать резервную копию сайта.

Как очистить базу данных WordPress посмотрите в видео, представленном ниже.

YouTube Трейлер