Наверное, вы уже знаете, что практически все современные сайты, также работающие на wordpress, сохраняют информацию в базе данных MySQL(БД).
Для удобства управления базой на хостинге установлен скрипт phpMyAdmin.
В панели phpMyAdmin можно легко управлять базой данных через браузер, выполняя все нужные операции. Можно, например:
- Создать резервную копию базы данных (Экспорт) или восстановить базу из созданной ранее копии (Импорт).
- Выполнить SQL-запросы к базе данных - это позволяет массово изменять определенную информацию. Например, можно поменять имя админа или одним запросом исправить все ссылки на сайте.
- Редактировать таблицы или строки таблиц.
- Удалять отдельные таблицы или всю базу целиком.
- А также совершать множество других операций.
Это очень легко и удобно, но иногда БД выдает ошибки.
Практически на любом сайте, возраст которого больше года, периодически возникают ошибки БД.
Содержание:
- Как выглядят ошибки, вызванные некорректной работой базы данных MySQ?
- Откуда берутся ошибки базы данных MySQ?
- Как найти лишние таблицы в БД?
- Как понять, какие таблицы удалять, а какие нет?
- Как удалить лишние таблицы из БД?
- Где еще может скрываться лишняя информация?
Эти ошибки сложно отследить, не считая случаев, когда на странице явно написано: "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.
↑ Как понять, какие таблицы удалять, а какие нет?
Проверьте, соответствуют ли названия таблиц, используемым вами плагинам.
Все, что не нашло соответствия со списком плагинов, можно удалить.
Но, сначала обязательно сделайте бэкап всей базы данных и отдельно каждой удаляемой таблицы!
↑ Как удалить лишние таблицы из БД?
- Перейдите к панели управления вашего хостинга, войдите в PhpMyAdmin.
- Выберите вашу базу данных.
- Отметьте старые таблицы, затем в фильтре выберите Удалить (Drop).
- Подтвердите удаление.
↑ Где еще может скрываться лишняя информация?
Чаще всего в таблице _options.
В конце, после записанных настроек сайта, следуют настройки плагинов.
Их, также, можно опознать по краткому названию.
Например, так называются строки с настройками плагина Dagon Design Sitemap Generator:
Сверив названия строк с работающими на сайте плагинами, удаляем лишние.
После всех этих процедур, можно оптимизировать БД:
Это все, удачной вам работы с сайтом!
Если не справитесь сами, можете заказать эту услугу мне
Как это нужно и вовремя. Спасибо огромное.
Зашёл к вам на вас посмотреть и музыку послушать, а её нет, когда то была :).
Ссылка в верхнем меню "Личное - Музыка, которую я слушаю" :).