本节讨论如何使用 myisamchk 检查或修复 MyISAM
表(使用 .MYD
和 .MYI
文件存储数据和索引的表)。有关 myisamchk 的一般背景信息,请参阅 第 6.6.4 节,“myisamchk - MyISAM 表维护实用程序”。其他表修复信息可以在 第 3.14 节,“重建或修复表或索引” 中找到。
您可以使用 myisamchk 检查、修复或优化数据库表。以下各节介绍如何执行这些操作以及如何设置表维护计划。有关使用 myisamchk 获取表信息的更多信息,请参阅 第 6.6.4.5 节,“使用 myisamchk 获取表信息”。
尽管使用 myisamchk 进行表修复非常安全,但在进行修复或任何可能对表进行大量更改的维护操作之前,始终建议进行备份。
影响索引的 myisamchk 操作可能会导致 MyISAM
FULLTEXT
索引使用与 MySQL 服务器使用的值不兼容的全文参数重建。为了避免此问题,请遵循 第 6.6.4.1 节,“myisamchk 常规选项” 中的准则。
MyISAM
表维护也可以使用 SQL 语句来完成,这些语句执行的操作类似于 myisamchk 可以执行的操作
要检查
MyISAM
表,请使用CHECK TABLE
。要修复
MyISAM
表,请使用REPAIR TABLE
。要优化
MyISAM
表,请使用OPTIMIZE TABLE
。要分析
MyISAM
表,请使用ANALYZE TABLE
。
有关这些语句的更多信息,请参阅 第 15.7.3 节,“表维护语句”。
这些语句可以直接使用,也可以通过 mysqlcheck 客户端程序使用。这些语句相对于 myisamchk 的一个优势是服务器会完成所有工作。使用 myisamchk 时,您必须确保服务器不会同时使用这些表,以避免 myisamchk 和服务器之间发生不必要的交互。