如何检查MyISAM表格中的错误

来自泡泡学习笔记
BrainBs讨论 | 贡献2023年7月25日 (二) 08:14的版本 (创建页面,内容为“要检查一个MyISAM表,你可以使用以下命令: myisamchk 表名 这个命令可以找到99.99%的错误。它不能找到只涉及数据文件的损坏(这种情况非常罕见)。如果你想要检查一个表,通常应该以无选项或者-s(静默)选项运行myisamchk命令。 myisamchk -m 表名 这个命令可以找到99.999%的错误。它首先检查所有索引条目是否有错误,然后读取所有行。它为所有行…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

要检查一个MyISAM表,你可以使用以下命令:

myisamchk 表名

这个命令可以找到99.99%的错误。它不能找到只涉及数据文件的损坏(这种情况非常罕见)。如果你想要检查一个表,通常应该以无选项或者-s(静默)选项运行myisamchk命令。


myisamchk -m 表名

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


myisamchk -e 表名

这个命令对所有数据进行完整而彻底的检查(-e表示"extended check")。它为每一行的每个关键字进行检查读取,以验证它们是否确实指向正确的行。对于有许多索引的大表来说,这可能需要很长时间。通常情况下,myisamchk在发现第一个错误后就会停止。如果你想获取更多信息,可以添加-v(详细)选项。这将导致myisamchk继续执行,最多显示20个错误。


myisamchk -e -i 表名

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

在大多数情况下,只需使用不带除表名之外的参数的简单myisamchk命令即可检查一个表。