本节讨论如何使用 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和服务器之间的不良交互。