Даже если формат таблицы MyISAM очень надежен (все изменения, внесенные в таблицу оператором SQL, записываются до его возврата), вы все равно можете получить поврежденную таблицу, если произойдет любое из следующих событий:
· Процесс mysqld завершается в середина записи.
· Происходит неожиданное завершение работы компьютера (например, компьютер выключается).
· Аппаратный сбой.
· Вы можете использовать внешние программы (например, myisamchk) для таблиц, одновременно изменяемых сервером.
· Дефекты программного обеспечения в коде MySQL или MyISAM.
Типичные признаки поврежденной таблицы:
· При выборе данных из таблицы возникает следующая ошибка:
· Неправильный файл ключа для таблицы: «...». Попробуйте восстановить его.
· Запрос не может найти строку в таблице. Или. вернуть неполные данные.
Вы можете использовать оператор CHECK TABLE для проверки работоспособности таблицы MyISAM и использовать REPAIR TABLE для восстановления поврежденной таблицы MyISAM. Когда mysqld не запущен, вы также можете использовать команду myisamchk для проверки или исправления таблицы.
Если ваша таблица часто повреждается, вам следует попытаться определить причину, по которой это происходит. Самое главное, что нужно понять, не была ли таблица повреждена в результате сбоя сервера. Вы можете убедиться в этом заранее, посмотрев в журнале ошибок самое последнее перезапущенное сообщение mysqld. Если такое сообщение существует, весьма вероятно, что повреждение таблицы является результатом смерти сервера. В противном случае возможно повреждение во время нормальной работы. Это недостаток. Вам следует попытаться создать воспроизводимый тестовый пример, демонстрирующий эту проблему.