Проверка таблиц на их целостность является частью системы профилактики таблиц, а также частью процедуры восстановления данных в случае непредвиденных обстоятельств, например, в случае отказа системы электропитания.
MySQL предлагает три способа проверки таблиц: с помощью CHECK TABLE, myisamchk (или isamchk) либо mysqlcheck. Затем можно устранить обнаруженные в таблицах проблемы с помощью REPAIR TABLE или с помощью myisamchk (либо isamchk), или mysqlcheck.
Существует ряд факторов, которые следует учитывать при выборе каждого из указанных вариантов. Команды CHECK и REPAIR можно использовать в рамках MySQL, тогда как остальные должны применяться из командной строки. Команды CHECK и REPAIR работают как с таблицами MylSAM, так и с таблицами InnoDB. Сценарий isamchk применим к таблицам ISAM, тогда как myisamchk и mysqlcheck могут использоваться с таблицами MylSAM.
Нельзя применять myisamchk или isamchk к таблицам, которые в тот момент используются. Лучше всего перед использованием этих сценариев завершить работу сервера, однако можно ограничиться и блокировкой таблиц. Если использовать указанные сценарии с таблицами, используемыми другими потоками MySQL, данные могут быть повреждены. Команды CHECK, REPAIR и mysqlcheck можно использовать и тогда, когда сервер находится в работе, а таблицы — в использовании.
Мы обсудим возможности использования каждого из указанных инструментов.