### 7.6.2 如何检查 MyISAM 表是否有错误

[](<>)[](<>)[](<>)

检查一个`MyISAM`表，使用以下命令：

-   [**迈萨姆奇克*`tbl_name`***](myisamchk.html)

    这会发现所有错误的 99.99%。它找不到的是涉及*只要*数据文件（这是非常不寻常的）。如果要检查表格，通常应该运行[**迈萨姆奇克**](myisamchk.html)没有选项或有`-s`（静音）选项。

-   [**myisamchk -m*`tbl_name`***](myisamchk.html)

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

-   [**myisamchk -e*`tbl_name`***](myisamchk.html)

    这会对所有数据进行全面彻底的检查（`-e`意思是“扩展检查”）。它对每一行的每个键进行检查读取，以验证它们确实指向正确的行。对于具有许多索引的大表，这可能需要很长时间。一般，[**迈萨姆奇克**](myisamchk.html)在发现第一个错误后停止。如果您想获取更多信息，可以添加`-v`（详细）选项。这引起[**迈萨姆奇克**](myisamchk.html)继续前进，最多通过 20 个错误。

-   [**myisamchk -e -i*`tbl_name`***](myisamchk.html)

    这与前面的命令类似，但`-一世`选项告诉[**迈萨姆奇克**](myisamchk.html)打印附加统计信息。

    大多数情况下，一个简单的[**迈萨姆奇克**](myisamchk.html)除了表名之外没有参数的命令足以检查表。
