РЕМОНТ И ОПТИМИЗАЦИЯ БАЗЫ ДАННЫХ В WORDPRESS (WP_ALLOW_REPAIR)
С базами данных могут происходить разные проблемы, и во многих случаях ремонт или оптимизация таблиц базы данных помогает решить эти проблемы.
ПАРА ПРИМЕРОВ
- Бывали случаи, когда я пытался получить данные из базы, а нужной информации просто не было, хотя при проверке она там обнаруживалась.
-
В практике моего коллеги была ситуация: таблица
wp_options
весила целых 11-17 ГБ, но после выгрузки показывала только 10-100 МБ. После выполнения команды:OPTIMIZE TABLE wp_options;
17 ГБ превратились в 311 КБ. Я сделал это для всех сайтов и в итоге освободил около 100 ГБ места на сервере.
Вероятно, это был какой-то кэш, который остался после копирования базы данных с одного сайта на другой.
СКРИПТ WORDPRESS ДЛЯ ОПТИМИЗАЦИИ БАЗЫ ДАННЫХ
WordPress имеет встроенный скрипт для ремонта таблиц базы данных. Он наход��тся в файле wp-admin/maint/repair.php
. Вы можете обратиться к этому файлу по адресу: http://ваш-сайт.com/wp-admin/maint/repair.php
. Этот скрипт автономный, но чтобы обратиться к файлу через URL, в файле wp-config.php
нужно установить константу:
define( 'WP_ALLOW_REPAIR', true );
Если константа установлена, вы увидите страницу (диалоговое окно) при переходе по указанному URL.
Разница между двумя способами использования этой функции заключается в том, что при использовании второго варианта будет выполнена оптимизация после ремонта.
Результат будет отображен следующим образом:
НЕМНОГО О ОПТИМИЗАЦИИ И РЕМОНТЕ
ОПТИМИЗАЦИЯ ТАБЛИЦЫ
Эта операция реорганизует (дефрагментирует) физическое пространство, занимаемое таблицей и индексами, что приводит к уменьшению занимаемого места и ускорению операций ввода-вывода. Конкретные действия различаются для разных движков (MyISAM, ARCHIVE и InnoDB поддерживаются).
КАК АВТОМАТИЗИРОВАТЬ ЭТУ ОПЕРАЦИЮ НА СЕРВЕРЕ?
Для одной таблицы вы можете выполнить SQL-запрос:
OPTIMIZE TABLE имя_таблицы
Для всех таблиц в базе данных используйте утилиту mysqlcheck
:
mysqlcheck --user=ПОЛЬЗОВАТЕЛЬ --password=ПАРОЛЬ --optimize имя_базы_данных
Или вы можете воспользоваться командой WP CLI:
wp db optimize
Если операция прошла успешно, вы увидите сообщение:
Успех: База данных оптимизирована.
РЕМОНТ ТАБЛИЦЫ
Эта команда восстанавливает поврежденную таблицу базы данных. Она работает только для некоторых SQL-движков, в частности для MyISAM, ARCHIVE и CSV.
Либо вы можете использовать команду WP CLI:
wp db repair
Если операция прошла успешно, вы увидите сообщение:
Успех: База данных отремонтирована.
УДАЛЕНИЕ КОНСТАНТЫ ПОСЛЕ ИСПОЛЬЗОВАНИЯ
Оптимизация или ремонт базы данных должен осуществляться администраторами, поэтому рекомендуется удалить константу WP_ALLOW_REPAIR
из файла wp-config.php
после использования этой функции.
В противном случае любой пользователь сможет выполнять эти ресурсоемкие операции с вашей базой данных, что может негативно сказаться на производительности и работе вашего сайта.