myisamchk 支持以下选项用于表检查操作
--check
,-c
命令行格式 --check
检查表是否有错误。如果您没有指定明确选择操作类型的选项,则这是默认操作。
-
命令行格式 --check-only-changed
仅检查自上次检查以来已更改的表。
--extend-check
,-e
命令行格式 --extend-check
非常彻底地检查表。如果表有许多索引,这将非常慢。此选项应仅在极端情况下使用。通常,myisamchk 或 myisamchk --medium-check 应该能够确定表中是否存在任何错误。
如果您使用的是
--extend-check
并且有足够的内存,将key_buffer_size
变量设置为较大的值有助于修复操作更快地运行。另请参见表修复选项下对该选项的描述。
有关输出格式的说明,请参见 第 6.6.4.5 节,“使用 myisamchk 获取表信息”。
--fast
,-F
命令行格式 --fast
仅检查尚未正确关闭的表。
--force
,-f
命令行格式 --force
如果 myisamchk 在表中发现任何错误,则自动执行修复操作。修复类型与使用
--recover
或-r
选项指定的修复类型相同。--information
,-i
命令行格式 --information
打印有关正在检查的表的统计信息。
--medium-check
,-m
命令行格式 --medium-check
执行比
--extend-check
操作更快的检查。这只能找到 99.99% 的所有错误,在大多数情况下应该足够好。--read-only
,-T
命令行格式 --read-only
不要将表标记为已检查。如果您使用 myisamchk 检查正在被某些其他应用程序使用的表,而这些应用程序不使用锁定(例如,当 mysqld 在禁用外部锁定的情况下运行时),这将很有用。
--update-state
,-U
命令行格式 --update-state
在
.MYI
文件中存储信息以指示表何时被检查以及表是否崩溃。这应该用于充分利用--check-only-changed
选项,但是如果您正在运行 mysqld 服务器并正在使用该表,并且您在禁用外部锁定的情况下运行它,则不应使用此选项。