Home News

Оптимизация базы данных сайта.

06.09.2018

видео Оптимизация базы данных сайта.

Настройка WP Optimize для оптимизации базы данных WordPress

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



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

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


6. Базы данных. Оптимизация запросов. Оптимизация структуры данных | Технострим

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

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

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

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

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

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

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

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

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

 

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

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

Плагин  WP-optimize.

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

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

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

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

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

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

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

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

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

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

Когда вы, пишите свою статью непосредственно в текстовом редакторе сайта,  вордпресс, через заданные промежутки времени, делает автоматическое сохранение текста. Причем, при написании только одного поста у вас в базе сохраняется несколько копий. А если это десять статей, а если сто? Представляете, с каждым новым постом, база расширяется как снежный ком.

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

Для отключения сохранения ревизий постов, с помощью файлового менеджера 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». Я  буду показывать на примере своего хостинга, наверняка на вашем хостинге все будет очень похоже.

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

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

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

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

DELETE FROM wp_posts WHERE post_type = "revision"

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

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

Чистим wp-postmeta.

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

Повторяем предыдущие манипуляции по очистке базы. Копируем строчку;

DELETE FROM ` wp_postmeta `

WHERE ` meta_key ` IN ( '_edit_lock' , '_edit_last' , '_wp_old_slug' )

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

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

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

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

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

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

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

DELETE FROM wp_comments WHERE comment_type = 'pingback' ;

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

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

DELETE FROM wp_comments WHERE comment_approved = 'spam' ;

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

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

Жду ваших отзывов, вопросов, предложений. До встречи!

rss