MySQL 8.0 参考手册  / 第 7 章备份与恢复  / 7.6 MyISAM表维护和崩溃恢复  /  7.6.2 如何检查 MyISAM 表的错误

7.6.2 如何检查 MyISAM 表的错误

要检查MyISAM表,请使用以下命令:

  • myisamchk tbl_name

    这会发现 99.99% 的错误。它找不到的是涉及数据文件的损坏(这很不寻常)。如果你想检查一个表,你通常应该不带选项或带(静默)选项 运行myisamchk 。-s

  • myisamchk -m tbl_name

    这会找到 99.999% 的所有错误。它首先检查所有索引条目是否有错误,然后读取所有行。它计算行中所有键值的校验和,并验证校验和是否与索引树中键的校验和匹配。

  • myisamchk -e tbl_name

    这会对所有数据进行全面彻底的检查(-e意思是扩展检查)。它对每一行的每个键进行检查读取,以验证它们确实指向正确的行。对于具有许多索引的大表,这可能需要很长时间。通常, myisamchk在发现第一个错误后停止。如果您想获得更多信息,可以添加-v(详细)选项。这导致 myisamchk继续运行,最多出现 20 个错误。

  • myisamchk -e -i tbl_name

    这类似于前面的命令,但 -i选项告诉 myisamchk打印额外的统计信息。

在大多数情况下,一个简单的myisamchk命令,除了表名之外没有任何参数就足以检查一个表。