От автора
Для работы любого сайта, в том числе сайта на WordPress, необходимо создать базу данных. Она будет использоваться для хранения статей, страниц, созданных меню, ссылок, всех комментариев, данных пользователей и других данных административной панели и самого сайта.
Стоит отметить, что все файлы, загружаемые в медиабиблиотеку, в базу не попадают, а лежат в каталоге: wp_content
.
Работая над созданием и администрированием сайта, вы постоянно увеличиваете БД в размере. Со временем раздутая база сильно увеличивает нагрузку на ваш сервер и увеличивает время загрузки сайта.
Анализ времени запроса к базе данных
Начнём разговор с чисто технического вопроса. Как определить, что база данных нуждается в оптимизации?
Будучи администратором сайта, вы всегда можете посмотреть журналы статистики на хостинге или использовать различные инструменты для определения суммарного времени запросов к базе данных сайта.
Однако, не все журналы доступны и не все инструменты корректны и всё это требует неоправданно много времени для анализа.
Можно сделать проще. Берем такой скрипт:
<small><?php echo $wpdb->num_queries; ?>
<?php _e(‘запросов’); ?>. <?php timer_stop(1); ?>
<?php _e(‘секунд’); ?></small>
Или такой
<?php echo get_num_queries(); ?> запросов за <?php timer_stop(1); ?> секунд.
Размещаем его в файле рабочей темы сайта footer.php
, перед закрывающим тегом </body>
.
Важно! Не забываем, перед любым «вторжением» в код шаблона делать (проверять наличие) резервную копию сайта или как минимум, копию редактируемого файла.
После добавления кода, сохраняемся и видим на самом сайте, внизу страницы, количество запросов и суммарное время обращения к базе данных вашего WordPress сайта.
Отмечу, этот данные анализа видят все пользователи, поэтому после завершения анализа скрипт нужно из кода убрать или закомментировать.
Если в результате анализа видим, что суммарное время запросов к БД больше одной секунды, это значит, что пора оптимизировать базу данных WordPress.
Что подразумевает оптимизация базы данных WordPress
CMS WordPress устроена таким образом, что независимо от вашего желания, делает много разных сохранений и хранит самую разную, даже не используемую, информацию.
Например, вы редактируете статью сайта, делая изменения в её содержании. За время редактирования система может сделать промежуточную копию вашей статьи и сохранить её.
Даже содержание сайта, которое вы отправляете в корзину, удалится из неё (по умолчанию) только через 90 дней.
Все эти технические файлы и данные, раздувают базу данных сайта. Как следствие увеличивается количество запросов к ней. Это приводит к увеличению времени загрузки сайта, одновременно растёт нагрузка на ваш сервер.
Поэтому, оптимизация базы данных WordPress сайта, должна стать обязательным пунктом работ администратора сайта.
Два подхода к оптимизации БД WordPress
Работая с сайтом WordPress, всегда есть выбор, работать с сайтом через плагины или без них.
Без плагинов вы можете искать в сети полезные PHP коды специального назначения и добавлять их в файл functions.php
вашей рабочей темы.
Если не хотите, чтобы изменения пропадали после обновления темы, используйте инструмент дочерней темы WordPress и вносите новые коды в файл functions.php
дочерней темы.
Без плагинов можно оптимизировать базу данных. Есть пару десятков php
кодов, которые снизят замусоривание базы данных и масса SQL запросов, которым вы можете очистить базу данных из панели phpmyadmin.
Второй подход более простой. Оптимизация базы данных WordPress сайта делается при помощи специальных плагинов. Есть 5-6 ведущих плагинов для чистки (оптимизации) базы данных, которые справляются с этой задачей за несколько секунд.
Что нужно удалять из БД WordPress при чистке
В классические работы по оптимизации базы данных, входит удаление:
- Сохранённых ревизий материалов;
- Мусорную корзину сайта;
- Комменты, попавшие в спам;
- Мета данные настраиваемых полей;
- Метки без статей;
- Времена последних редакций статей;
- Неактуальные ЧПУ постов.
- Трекбеков, пингбеков, рефбеков. Это три вида линкбеков, связанных с уведомлениями об обратных ссылках.
Чтобы очистить технические данные вручную, вам придётся сделать, как минимум, 9 SQL запроса в phpmyadmin. Вот несколько из них:
SQL запросы для чистки БД WP
В запросах нужно изменить префикс базы данных на свой. Также делать SQL запросы через имитацию запроса. Перед чисткой, обязательно нужно сделать резервную копию всей базы данных (кнопка «Экспорт» в панели phpmyadmin).
DELETE ревизий постов
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)
WHERE a.post_type = 'revision'
удаление post-meta плагинов
DELETE FROM wp_postmeta WHERE meta_key = 'your-meta-key';
удаляем все pingback
DELETE FROM wp_comments WHERE comment_type = 'pingback';
Delete спам комментов
DELETE FROM wp_comments WHERE comment_approved = 'spam';
найти и потом удалить метки без статей
SELECT * From wp_terms wt
INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id
WHERE wtt.taxonomy='post_tag' AND wtt.count=0;
5 плагинов чистки БД WordPress
Более простой вариант оптимизации, использовать специальные плагины. Вот лучшие из них.
Optimize Database after Deleting Revisions
Русскоговорящий плагин . Настройки просты и понятны. Достаточно выделить чеки, что хотите удалить из таблиц БД и жмёте кнопку «Оптимизировать». У плагина есть своя ссылка «Оптимизировать базу данных» или “Optimize Database”в блоге «Инструменты» консоли.
Покажу, как он работает. После активации плагина, переходим на вкладку настроек плагина, через блог «Инструменты» или блог «Настройки».
Ставим галочки в нужных опциях плагина. На фото отмечены чеки разумного подхода к чистке.
При желании можно поставить чеки на таблицы базы, которые не нужно оптимизировать.
Сначала сохраняем настройки (1).
Потом проводим оптимизацию, нажимая на одноимённую кнопку (2).
На следующей вкладке смотрим результат очистки. Как видим на фото я освободил.
WP-Optimize
Очень известный и популярный плагин чистки базы данных.
Популярность плагина обусловлена возможностью работать в паре с плагином UpdraftPlus (создание резервных копий). У обоих плагинов один автор. Один плагин чистит базу данных, второй плагин резервирует.
Даже без пары, WP-Optimize отлично справляется с чисткой баз данных. Покажу, как он работает.
После активации плагина, он появится в блоке «Настройки». Открываем вкладку WP-Optimize.
Если вам нужно, посмотрите настройки плагина. По умолчанию, настройки вполне нормальные и можно их не трогать. Единственное, что заслуживает внимание это настройка расписания чистки и срок хранения данных.
На вкладке «» вы видите, несколько подписанных кнопок. Это опции плагина по чистке. Всё на английском языке. Обратите внимание, часть кнопок чистки красного цвета. Это необязательное удаление, которое может сказаться на работе сайта. Их использовать нужно обдуманно. Остальные кнопки чисток используем без лишних сомнений. Однако копию сайта нужно всегда иметь под рукой.
Остается заметить, что WP-Optimize всегда обновляется под последние версии системы.
Optimize Database and Clean Up Plugin by Clean Up Optimizer
Англоговорящий плагин, не переведенный на русский язык.
В варианте free, плагин эффективно, но простовато, проводит стандартную чистку БД. Убирает ревизии статей, спам, корзину, неиспользуемые теги.
Advanced Database Cleaner
Простой, хорошо обновляемый плагин для стандартной чистки базы данных WP сайта.
WP-DBManager
На это плагин чистки, стоит обратить внимание. Он не только оптимизирует базу данных, но и может восстановить её, сделать резерв, удалить не нужный резерв, распаковать или удалить отдельные таблицы.
Вывод
Я показал, что такое оптимизация базы данных WordPress сайта, зачем она нужна и как ей можно проводить. Лучший, удобный вариант для администратора, использовать плагины. Выборочную чистку лучше проводить вручную. CMS WordPress позволяет использовать оба варианта.
©seojus.ru
Спасибо! В 2 раза уменьшился размер БД после оптимизации.