4.4. Предотвращение катастроф и восстановление
4.4.6. Использование myisamchk для профилактики таблиц и послеаварийного восстановления
4.4.6.8. Как проверять таблицы на ошибки
Для проверки таблицы MyISAM используются следующие команды:
myisamchk tbl_name
Находит 99,99% всех ошибок. Не в состоянии отыскать повреждений, затрагивающих только файл данных (которые весьма необычны). Если необходимо только проверить таблицу, то обычно следует выполнить myisamchk без опций либо с одной из опций -s или --silent.
myisamchk -m tbl_name
Находит 99,999% всех ошибок. Сначала на ошибки проверяются все индексные элементы, а затем читаются все строки подряд. Программа вычисляет контрольную сумму для всех ключей в строке и проверяет, совпадает ли она с контрольной суммой в индексном дереве.
myisamchk -e tbl_name
В этом случае выполняется полная и тщательная проверка всех данных (-e означает "расширенная проверка"). Происходит тестовое чтение каждого ключа для каждой строки с целью контроля того, что ключи указывают на нужные строки. Для большой таблицы с множеством ключей на это может потребоваться много времени. myisamchk обычно останавливается после обнаружения первой ошибки, но если желательно получить более подробную информацию, можно добавить опцию --verbose (-v) - таким образом выполнение myisamchk будет продолжаться вплоть до максимума в 20 ошибок. При нормальной работе достаточно просто запустить myisamchk (без аргументов за исключением имени таблицы).
myisamchk -e -i tbl_name
Аналогична предыдущей команде, но опция -i указывает myisamchk дополнительно отображать некоторую статистическую информацию.