8

Как снизить нагрузку на хостинг? Оптимизация базы данных mysql

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

очистка-базы-данных-сайта

Когда я делал свой первый блог,  имел мало необходимых знаний как правильно оптимизировать изображения, настраивать удаление ревизий постов и спама комментариев. И естественно косяков хватало!

Буквально через  четыре месяца ведения блога, получил письмо от хостера. Так мол и так, ваш аккаунт превысил допустимый лимит на 20 % сверх допустимого тарифным планом, предлагаем вам перейти на другой тариф или приобрести себе отдельный VPS сервер.

Ничего себе фига! Посещаемость блога не более 50 человек в день, а нагрузка запредельная. Стал искать ответ на вопрос как снизить нагрузку на хостинг?

Оказалось, что это довольно распространенная и вполне решаемая проблема. Проблема заключается в «замусоривании» базы данных сайта. Ниже я опишу как выполнить очистку и оптимизацию базы данных на своем сайте.

Плагины для оптимизации базы данных.

Предлагаю рассмотреть два замечательных плагина которые помогут существенно уменьшить объем базы данных и очистить ее от лишнего мусора. Этот способ безопасен и эффективен и особенно рекомендуется использовать начинающим.

Плагин Optimize Database after Deleting Revisions.

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

Установка плагина происходит стандартно через админ панель вашего сайта;  “Консоль” => “Плагины” 1 => “Добавить новый” 2 => в строке поиска пишем ”Optimize Database after Deleting Revision“ 3 => “Установить — Активировать” 4.

Optimize-Database-плагин
Настройка плагина не составляет сложностей и можно принять предложенные параметры по умолчанию. Для настройки, в административной панели управления сайтом, переходим; “Настройки” 1  => “Optimize-Database” 2 => Отмечаем чекбоксы как у меня => нажимаем “Сохранить настройки” 3

Optimize-Database-настройка-плагина

После установки и настройки плагина переходим в админ панель сайта и запускаем оптимизацию базы данных  “Инструменты” 1 => “Optimize-Database” 2 и нажимаете “Начать оптимизацию”

 

Optimize-Database-инструменты-плагина
По окончании работы, будет выдан отчет с результатами проделанной работы. Там вы детально можете посмотреть что было удалено и какой объем памяти освобожден. Самый интересный  раздел в этом отчете – “Результат”. Посмотрите, что выдало на моем сайте (см. рис.)

  • “После оптимизации” 1 — это размер моей базы данных на сегодняшний день.
  • “Сбережено в этот раз” 2  – показывает сколько удалось очистить за последний сеанс.
  • “Сбережено с момента первого запуска” 3  – показывает общий объем мусора, который удалил плагин с момента установки. Бесспорный аргумент, который показывает  необходимость и эффективность плагина.

Optimize-Database-результат-работы

Плагин  WP-optimize.

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

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

Установка плагина происходит  стандартно из административной панели сайта; “Консоль” => “Плагины” 1 => “Добавить новый” 2 => в поисковой строке набираем “WP-optimize” 3 => “Установить — Активировать” 4.

WP-optimize-плагин

Настройки плагина аналогичны предыдущему. Для этого переходим по вкладке “WP-optimize” 1  в панели управления сайтом.

  • В столбце “Optimization” 2 выбираем необходимые функции (можете сделать как у меня),
  • В столбце “Notes” 3 , вам показаны найденные файлы которые можно удалить;
  • В столбце 4 вы можете удалить не нужные файлы отдельно, нажимаю на кнопки “Run optimization ”;
  • Нажав на кнопку “Run all selected optimization” 5 – вы очистите все выбранные в настройках файлы разом.

WP-optimize-настройки

Дополнительные работы по оптимизации базы данных  и уменьшению нагрузки на хостинг.

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

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

Внимание! Перед проведением любых работ и внесением изменений в код сайта, выполните резервное копирование!

Отключаем сохранение ревизии постов.

Когда вы, пишите свою статью непосредственно в текстовом редакторе сайта,  вордпресс, через заданные промежутки времени, делает автоматическое сохранение текста. Причем, при написании только одного поста у вас в базе сохраняется несколько копий. А если это десять статей, а если сто? Представляете, с каждым новым постом, база расширяется как снежный ком.
При внесении корректировок в текст, удалении отрывков, картинок и других файлов, у вас происходит накопление мусора в корзине. Это создает дополнительную нагрузку на сервер и тормозит сайт. Соответственно, идет ухудшение поведенческих факторов пользователей и снижение позиций сайта в поисковой выдаче.
Для отключения сохранения ревизий постов, с помощью файлового менеджера 1 (или через FTP соединение), находим файл wp-config.php. Обычно путь к этому файлу “Ваш сайт”=> “Public_html” =>”wp-config.php” 2 .

файловый-менеджер-сайта
Добавляем в файл две строчки и не забываем нажать “Сохранить изменения”

define('WP_POST_REVISIONS', false);
define('EMPTY_TRASH_DAYS', 1);

Первая строчка отключает сохранение ревизий постов, а вторая задает срок хранения удаленных файлов в корзине. Я задал срок хранения один день, на случай случайного, непредвиденного удаления файлов. Вы можете изменить цифру в конце  второй строки, тем самым задать свой срок хранения удаленных файлов.
Куда вставить код в файле wp-config.php смотрите на рисунке ниже.

 

вставка-кода-удаление-ревизий-постов

Сохраняем резервную копию базы данных.

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

Заходим в базу данных своего сайта. Для этого необходимо перейти в панель управления вашего сайта на хостинге и найти вкладку «Базы данных MySQL». Я  буду показывать на примере своего хостинга, наверняка на вашем хостинге все будет очень похоже.

База-данных-MySQL-сайта
Вы должны оказаться на странице “phpMyAdmin” на которой расположены таблицы базы данных.

Базы-данных-MySQL
Нажимаем кнопку “Экспорт” 1 и затем нажимаем “Вперед” 2 . После чего вам будет предложено “Открыть файл” или “Сохранить”. Выбираем “Сохранить” или скачиваем файл к себе на компьютер.

Удаляем ревизии постов.

В предыдущем пункте мы отключили функцию сохранения ревизии постов,  сейчас мы удалим уже накопившиеся ранее. Для этог копируем следующую строчку:

DELETE FROM wp_posts WHERE post_type = "revision"

Заходим в свою базу данных и переходим по  вкладке  SQL 1, в появившемся  поле вставляем скопированную строку 2 и нажимаем “Вперед” 3. В поле после выполненного запроса будет показано сколько строк было удалено.

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

Чистим wp-postmeta.

В данной табличке скапливаются отметка времени последнего редактирования постов, содержание ЧПУ при смене постоянных ссылок в постах.
Повторяем предыдущие манипуляции по очистке базы. Копируем строчку;

DELETE FROM `wp_postmeta`
WHERE `meta_key` IN('_edit_lock', '_edit_last','_wp_old_slug')

Вставляем её в поле запроса SQL, и нажимаем «Вперед». Проверяем полученный результат:

wp-postmeta-очистка

Оптимизируем записи в папке wp-post.

Папка wp-post содержит все записи блога. Повторяем процедуру, как и в предыдущем пункте. Копируем строку;

OPTIMIZE TABLE wp_posts;

Вставляем, как и в предыдущем случае, в поле вкладки SQL и не забываем нажать “Вперед”(на некоторых хостингах”ОК”)

wp-post-запрос
Все запрос выполнен, табличка очищена.

Удаляем пингбеки

Пингбеки информируют о том, что кто-то ссылается на наши статьи. Удаляем за ненадобностью. Копируем строку запроса и вставляем как и раньше;

DELETE FROM wp_comments WHERE comment_type = 'pingback';

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

Повторяем выполнять запросы SQL. Копируем следующий код;

DELETE FROM wp_comments WHERE comment_approved = 'spam';

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

Удаляем-спам-в-комментариях
Данные процедуры по очистке базы данных, желательно проводить раз в два, три месяца. Какой применить способ очистки вручную или с помощью плагинов выбирать вам. Никто не мешает комбинировать оба способа. И тогда ваш сайт будет просто “летать”!
Жду ваших отзывов, вопросов, предложений. До встречи!

комментариев 8
  1. GorLinv196
    19.09.2019 в 21:02

    Спасибо автору блога! Много хороших статей у Вас в блоге. Добавила в избранное теперь буду чаще заходить.

  2. admin
    20.01.2018 в 19:15

    Рад был помочь, Александр.Удачи!

  3. Александр
    20.01.2018 в 02:01

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

  4. admin
    13.01.2018 в 15:48

    Пожалуйста, всегда рад помочь.

  5. Viktoria LPS Studio
    13.01.2018 в 14:04

    Очень полезная статья! Спасибо за советы! Очень понравилось) Обязательно воспользуюсь этой информацией! Супер!

  6. Лина
    11.01.2018 в 17:42

    Статья просто класс, мне очень помогла, сайт намного лучше стал работать, оптимизации стала лучше, спасибо большое!

  7. admin
    10.01.2018 в 23:35

    Пожалуйста, рад был помочь.

  8. Иван Чижик
    10.01.2018 в 13:48

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

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.