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

Автор:
(Людмила Лунева)

Веб-дизайнер и разработчик сайтов на wordpress

Наверное, вы уже знаете, что практически все современные сайты, также работающие на wordpress, сохраняют информацию в базе данных MySQL(БД).

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

  • Создать резервную копию базы данных (Экспорт) или восстановить базу из созданной ранее копии (Импорт).
  • Выполнить SQL-запросы к базе данных - это позволяет массово изменять определенную информацию. Например, можно поменять имя админа или одним запросом исправить все ссылки на сайте.
  • Редактировать таблицы или строки таблиц.
  • Удалять отдельные таблицы или всю базу целиком.
  • А также совершать множество других операций.

Это очень легко и удобно, но иногда БД выдает ошибки.
Практически на любом сайте, возраст которого больше года, периодически возникают ошибки БД.

Содержание:

  1. Как выглядят ошибки, вызванные некорректной работой базы данных MySQ?
  2. Откуда берутся ошибки базы данных MySQ?
  3. Как найти лишние таблицы в БД?
  4. Как понять, какие таблицы удалять, а какие нет?
  5. Как удалить лишние таблицы из БД?
  6. Где еще может скрываться лишняя информация?

Эти ошибки сложно отследить, не считая случаев, когда на странице явно написано: "SQL Error"

↑ Как выглядят ошибки, вызванные некорректной работой базы данных MySQ?

  • Какие то функции вашей темы не работают на вашем существующем сайте, но, при этом, работают на новом сайте (с новой базой данных).
  • На страницах выводится текст, который вы не добавляли.
  • Сайт регулярно "слетает" - пропадает или криво отображается контент.

В тяжелых случаях повреждения БД:

  • Данные на странице могут быть перепутаны: части контента выводятся не там, где должны были бы выводиться.
  • Долго работает поиск или не находит того, что точно есть на сайте.
  • Не правильно работают ссылки - например, ссылка указывает на пост, а при переходе по ней отображается пустая страница или другой пост.

↑ Откуда берутся ошибки базы данных MySQ?

  • В БД записывается вся информация, которая есть на сайте, в том числе настройки тем + плагинов. Иногда, чтобы найти нужный, приходится устанавливать множество других. Потом лишние удаляются, но каждый из плагинов оставляет таблицы со своими настройками.
  • Проблемы могут возникнуть из-за противоречащих друг другу настроек различных плагинов.
  • Также, при обновлении самого скрипта MySQL, иногда старые табличные данные не правильно интерпретируются, вызывая ошибки.
  • Если на сайте прямо не запрещено сохранение резервных копий постов или страниц, то каждое их сохранение, добавляет лишнюю копию.Не знаю, как вы, а я после публикации любой статьи, еще несколько раз что-нибудь в ней исправляю, сохраняя исправленное.В итоге, оказывается, что каждый опубликованный пост, имеет десяток, а то и больше копий, которые записаны в базе данных MySQL.Так, со временем каждая БД накапливает множество неиспользуемых таблиц, заполненных всякой ненужной информацией.

Как запретить сохранение ревизий?

Добавьте в файл wp-config.php строку:

define('WP_POST_REVISIONS', false);

Если вы не решаетесь кардинально сменить БД, то ее можно почистить от скопившейся там лишней информации.

Чтобы было понятно, как к этому подойти, я опишу структуру базы данных wordpress.

Итак, начиная с версии wordpress 4.4 БД состоит из 12 таблиц:

1. wp_commentmeta
2. wp_comments
3. wp_links
4. wp_options
5. wp_postmeta
6. wp_posts
7. wp_terms
8. wp_termmeta
9. wp_term_relationships
10. wp_term_taxonomy
11. wp_usermeta
12. wp_users

wp_commentmeta - содержит дополнительную информацию о комментариях. Сюда часто записываются данные плагинов, которые задействованы в комментариях, например плагина wp-syntax.

wp_comments - здесь хранятся все данные о комментаторах: ID комментатора, ID поста, к которому добавлен комментарий, имя, email комментатора, а также, дата и текст комментария.

wp_links - эта таблица предназначена для ссылок. И, хотя давно никто не публикует на сайте списки ссылок, таблицу wp_links лучше удалять.

wp_options - здесь хранятся все настройки сайта + плагинов, которые записываются в порядке их установки.
Если вы не знаете, какая настройка к чему относится, лучше ничего здесь не трогать.

wp_postmeta - эта таблица непосредственно связана с предыдущей. Она предназначена для хранения мета-данных записей, т.е. информации, связанной с постами: прикрепленные файлы (изображения, видео), значения произвольных полей, например, содержимое полей Title, Description, Keywords.

wp_posts - содержит весь контент + все, что связано с ним: дата публикации поста, его автор, заголовок, текст поста, статус поста (опубликован или черновик), разрешены ли комментарии, их количество.

wp_terms - содержит список таксономий (категорий, тегов) а также, их ID, слаги, ID групп, к которым эти категории принадлежат. Например:
term_id - 2
name - Индексация сайтов.

wp_termmeta - логически рассуждая, эта таблица должна содержать мета-данные таксономий, дополняет таблицу wp_terms. У меня она оказалась пустой.

wp_term_relationships - показывает, к каким рубрикам относится пост, а также какие метки ему присвоены.

wp_term_taxonomy - сохраняет дополнительные данные о категориях, тегах, а также устанавливает вложенность категорий.

wp_usermeta - содержит дополнительные данные о зарегистрированных пользователях.

wp_users - хранит информацию о зарегистрированных пользователях сайта: ID пользователей, логин, пароль, email.

Это все таблицы движка wordpress.
Все, что содержит ваша база кроме них, создано плагинами.

↑ Как найти лишние таблицы в БД?

В названии таблицы содержится краткое название плагина, например:

Счетчик Загрузок:
_download_count

Lockdown WP Admin:
_lockdowns

ping_optimizer:
_cbnetpo_ping_optimizer

belavir:
_blc_filters

Webmaster Yandex:
_wm_ya_stat_texts

В базе данных MySQL моего сайта, например, были лишними следующие таблицы:

Lockdown WP Admin и Login LockDown:
_lockdowns
_login_fails

ping_optimizer:
_cbnetpo_ping_optimizer

belavir:
_blc_filters
_blc_instances
_blc_links
_blc_synch

Webmaster Yandex:
_wm_ya_stat_texts
_wm_ya_texts

Плагины Lockdown WP Admin, Login LockDown и belavir (php MD5) я давно заменила all-in-one-wp-security-and-firewall, а функции ping_optimizer теперь выполняет непосредственно wordpress.

↑ Как понять, какие таблицы удалять, а какие нет?

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

Но, сначала обязательно сделайте бэкап всей базы данных и отдельно каждой удаляемой таблицы!

Как сделать бэкап сайта

↑ Как удалить лишние таблицы из БД?

  1. Перейдите к панели управления вашего хостинга, войдите в PhpMyAdmin.
  2. Выберите вашу базу данных.
  3. Отметьте старые таблицы, затем в фильтре выберите Удалить (Drop).
  4. Подтвердите удаление.

Как удалить лишние таблицы в базе данных

↑ Где еще может скрываться лишняя информация?

Чаще всего в таблице _options.
В конце, после записанных настроек сайта, следуют настройки плагинов.
Их, также, можно опознать по краткому названию.

Например, так называются строки с настройками  плагина Dagon Design Sitemap Generator:

Настройки плагина Sitemap Generator

Сверив названия строк с работающими на сайте плагинами, удаляем лишние.

После всех этих процедур, можно оптимизировать БД:

Как очистить базу данных wordpress
Это все, удачной вам работы с сайтом!

Если этот пост вам помог, кликайте на звездочки рейтинга и социальные кнопки.
Если не справитесь сами, можете заказать эту услугу мне Смайл

Комментарии

  1. Как это нужно и вовремя. Спасибо огромное.

  2. Зашёл к вам на вас посмотреть и музыку послушать, а её нет, когда то была :).

    • Ссылка в верхнем меню "Личное - Музыка, которую я слушаю" :).

Ответ на комментарий

Войти, чтобы написать отзыв.

Внимание: все отзывы проходят модерацию.

Топ комментаторов
АватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватарАватар
Самые комментируемые записи
Самые читаемые записи

Для того чтобы снять блок и увидеть скрытый контент или ссылку на закачку, подпишитесь на обновления блога.

В каждом письме публикуется код разблокировки.

Пользуйтесь кодом только из последних, пришедших вам на Email, писем. Закрыть »

Постов 204
Отзывов 5281