Spec-Zone.ru › MySQL 8.4

9.6.5 Настройка расписания обслуживания таблиц MyISAM

Хорошей практикой является регулярная проверка таблиц, вместо ожидания возникновения проблем. Один из способов проверки и ремонта MyISAM таблиц — использование команд CHECK TABLE и REPAIR TABLE. См. Раздел 15.7.3, «Команды обслуживания таблиц».

Другой способ проверки таблиц — использование утилиты myisamchk. Для обслуживания вы можете использовать myisamchk -s. Опция -s (аббревиатура от --silent) запускает myisamchk в бесшумном режиме, выводя сообщения только при возникновении ошибок.

Также рекомендуется включить автоматическую проверку MyISAM таблиц. Например, всякий раз, когда машина перезагружается во время обновления, обычно необходимо проверить каждую потенциально затронутую таблицу перед дальнейшим использованием. (Это “ожидаемые аварийные таблицы”). Для автоматической проверки MyISAM таблиц, запустите сервер с установленным системным параметром myisam_recover_options. См. Раздел 7.1.8, «Системные переменные сервера».

Также необходимо регулярно проверять таблицы во время обычной работы системы. Например, можно запустить задание cron для проверки важных таблиц раз в неделю, используя строку подобную этой в файле crontab:

35 0 * * 0 /path/to/myisamchk --fast --silent /path/to/datadir/*/*.MYI

Это выводит информацию об аварийных таблицах, чтобы вы могли их проверить и восстановить при необходимости.

Для начала, запустите myisamchk -s каждую ночь для всех таблиц, которые были обновлены в течение последних 24 часов. По мере того, как вы увидите, что проблемы возникают редко, можно уменьшить частоту проверки до раз в неделю.

Обычно таблицам MySQL требуется мало обслуживания. Если вы выполняете множество обновлений для MyISAM таблиц с динамически изменяемыми строками (таблицы со столбцами типа VARCHAR, BLOB или TEXT) или имеете таблицы с множеством удаленных строк, вам может потребоваться время от времени дефрагментировать/освободить место в таблицах. Это можно сделать, используя команду OPTIMIZE TABLE для интересующих вас таблиц. В качестве альтернативы, если вы можете на некоторое время остановить сервер mysqld, перейдите в каталог данных и выполните эту команду во время остановки сервера:

$> myisamchk -r -s --sort-index --myisam_sort_buffer_size=16M */*.MYI

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/myisam-maintenance-schedule.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API