Community
2 12294
HostiServer
2018-11-06 14:22

Как просто оптимизировать MySQL для WordPress

Базовые подходы по оптимизации MySQL (WP Optimize, WP Sweep, phpMyAdmin)

База данных – место, где хранятся записи, страницы, комментарии и другой контент веб-ресурса, а также настройки сайта, тем и плагинов. Если блог, интернет-магазин, сайт-галерея или видео(туб)-сайт на WordPress «живой» и регулярно обновляется, размер базы данных растёт, как на дрожжах. А если ко всему этому наблюдается прирост числа посетителей, количество простых и сложных MySQL запросов также растёт.

Простой MySQL запрос – запрос, в котором участвует одна таблица БД, сложный – в котором участвует более одной таблицы БД.

В результате увеличивается нагрузка на сервер и в какой-то момент сайт начинает «тормозить».

Обсудим первые шаги к оптимизации работы MySQL, а именно оптимизацию таблиц.

Как оптимизировать MySQL для WordPress с WP-Optimize

Воспользоваться WP-Optimize может пользователь любого уровня подготовки без каких-либо проблем и знаний о mySQL. Всё что нужно для его реализации – это знать, как устанавливать плагины на WordPress.

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

  1. Установите и активируйте WP-Optimize.
  2. Перейдите в настройки, кликнув по пункту меню WP-Optimize в Консоли WordPress-сайта.
  3. Отметьте чекбоксы возле пунктов, которые хотите исправить или оптимизировать. Красным цветом в настройках WP-Optimize выделяются задачи, предполагающие более глубокую работу с базой данных. Отмечайте их только в том случае, если предварительно сделали резервную копию и знаете, как её восстановить в случае чего.
  4. Нажмите кнопку Run all selected optimizations.
Оптимизировать таблицы в WP-Optimize

В результате WP-Optimize очищает весь мусор в виде ненужных комментариев (спам, неподтвержденные комментарии и др.), всех ревизий постов и пустые поля из таблиц.

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

Как оптимизировать MySQL для WordPress с WP-Sweep

Альтернатива предыдущему плагину от автора множества популярных плагинов для WordPress.

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

Оптимизировать MySQL с помощью WP-Sweep

Как оптимизировать MySQL для WordPress с phpMyAdmin

Этот способ возможно реализовать только в том случае, если у вас есть доступ к административной панели phpMyAdmin.

Перед выполнением дальнейших действий необходимо сделать бэкап базы данных

  1. Залогиньтесь в административной панели и выберите в левом боковом меню базу данных сайта. Если не знаете какая именно БД используется вашим веб-ресурсом, откройте в любом текстовом редакторе файл wp-config.php, лежащий в корневой директории сайта, и найдите строку, которая начинается с define('DB_NAME'). Значение, указанное после 'DB_NAME' – и есть название базы данных веб-ресурса:
  2. Поиск DB_NAME в wp-config.php Выбор базы данных сайта в phpMyAdmin
  3. Отметьте чекбоксы возле названий таблиц, которые хотите оптимизировать. Для оптимизации всей базы данных, кликните по ссылке «Отметить все»:
  4. Выбор таблиц в базе данных
  5. Откройте выпадающий список «С отмеченными:» справа от ссылки и выберите пункт «Оптимизировать таблицу»:
  6. Оптимизировать таблицы в phpMyAdmin

Что происходит в результате? По сути операция по оптимизации через phpmyadmin выполняет похожие функции, а именно - выполняется SQL запрос OPTIMIZE TABLE , который, реорганизует физическое хранилище табличных данных и связанных с ними данных индекса. Это помогает сократить используемое дисковое пространство и улучшить операции чтения/записи в таблице(-ах).

Оптимизация таблиц (и дефрагментация файла базы данных) необходима, когда в БД постоянно добавляются и удаляются записи. Это позволяет убрать пустые поля в таблице, ускоряя выборку данных из нее.

Самостоятельная очистка MySQL таблиц

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

Удаление всех ревизий:

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';

Удаление всех спам-комментариев:

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);

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

DELETE FROM wp_options WHERE option_name LIKE ('%\_transient\_%');

Дальнейшие действия связаны непосредственно с самой базой данных и начинаются с поиска и определения медленных запросов. Зачем искать подобные запросы? Например, для того чтобы найти плагин, использующий не оптимальные, "тяжелые" запросы, тормозящий этим работу базы данных, а впоследствии и сайта.

На этом этапе, вам уже не обойтись без навыков администрирования веб-сервера.

Как определить медленные запросы MySQL?

Один из способов решить эту задачу – включить лог медленных запросов MySQL. Делается это с помощью настройки конфигурационного файла базы данных, который часто хранится в директории etc/mysql/my.cnf или etc/my.cnf.

Откройте его в текстовом редакторе и добавьте такие строчки кода:
slow_query_log = /var/log/mysql/mysql-wp-slow.log
long_query_time = 5,
где /var/log/mysql/mysql-wp-slow.log – путь к файлу, в который будет записана информация о медленных запросах (перед выполнением настройки my.cnf его необходимо создать), 5 – время выполнения запроса в секундах, по истечению которого он считается медленным.
После перезапуска MySQL все медленные запросы будут записаны в /var/log/mysql/mysql-wp-slow.log, которые и нужно будет оптимизировать в дальнейшем.

Представленные выше способы являются лишь базовым набором рекомендаций, поскольку предмет оптимизации зависит от специфики сайта и определения "узкого места", замедляющего его работу.

Содержание

управляемые vps от

$19 95 / мес

серверы на базе новых
процессоров intel xeon

$130 / мес

протестируй anycast cdn

1 Gbps
бесплатно
ПОЛУЧИТЕ ДО $150 за 1-ю покупку

 

Этот сайт использует cookies. Продолжая навигацию по сайту, вы соглашаетесь с политикой конфиденциальности.