**myisamchk支持以下用于表修复操作的选项(当提供诸如--recover
或 的选项时执行的操作--safe-recover
):
-
--backup
,-B
将该
.MYD
文件备份为*
file_name*-*
time*.BAK
-
--character-sets-dir=*
dir_name*
字符集的安装目录。请参见 第10.15节“字符集配置”。
-
更正表的校验和信息。
-
--data-file-length=*
len*
,-D *
len*
数据文件的最大长度(当“ full ”时重新创建数据文件时)。
-
--extend-check
,-e
进行修复,尝试从数据文件中恢复所有可能的行。通常,这还会发现很多垃圾行。除非您绝望,否则不要使用此选项。
另请参阅表检查选项下对此选项的描述。
有关输出格式的说明,请参见 第4.6.4.5节“使用myisamchk获取表信息”。
-
--force
,-f
覆盖旧的中间文件(名称如的文件
*
tbl_name*.TMD
)而不是中止。 -
--keys-used=*
val*
,-k *
val*
对于myisamchk,选项值是一个位值,指示要更新的索引。选项值的每个二进制位对应于一个表索引,其中第一个索引是位0。选项值0禁用对所有索引的更新,该更新可用于更快地插入。可以使用myisamchk -r重新激活已停用的索引 。
-
--no-symlinks
,-l
不要遵循符号链接。通常, myisamchk修复符号链接指向的表。从MySQL 4.0开始,此选项不存在,因为从4.0开始的版本不会在修复操作期间删除符号链接。
-
如果myisamchk无法分配内存来容纳行,请跳过大于给定长度的行 。
-
使用同样的技术
-r
和-n
,而是创建并行的所有按键,使用不同的线程。这是Beta质量代码。使用风险自负! -
--quick
,-q
通过仅修改索引文件而不是数据文件来实现更快的修复。您可以指定两次该选项,以在密钥重复的情况下强制myisamchk修改原始数据文件。
-
--recover
,-r
进行修复可以解决几乎所有问题,但唯一键不是唯一的(这是
MyISAM
表中极不可能发生的错误)。如果要恢复表,可以选择先尝试。--safe-recover
仅当myisamchk报告无法使用表恢复表时, 才 应尝试--recover
。(在极少数情况下--recover
失败,数据文件将保持不变。)如果您有很多内存,则应增加的值
myisam_sort_buffer_size
。 -
--safe-recover
,-o
使用旧的恢复方法进行修复,该方法将按顺序读取所有行,并根据找到的行更新所有索引树。这比慢了一个数量级
--recover
,但是可以处理几个非常不可能的情况--recover
。这种恢复方法还比使用更少的磁盘空间--recover
。通常,您应该首先使用进行修复--recover
,然后--safe-recover
仅在--recover
失败时进行修复 。如果您有很多内存,则应增加的值
key_buffer_size
。 -
指定用于排序表索引的排序规则。字符集名称由排序规则名称的第一部分隐含。
-
--sort-recover
,-n
强制myisamchk使用排序来解析密钥,即使临时文件很大。
-
--tmpdir=*
dir_name*
,-t *
dir_name*
用于存储临时文件的目录的路径。如果未设置,myisamchk将使用
TMPDIR
环境变量的值。--tmpdir
可以设置为目录路径列表,这些目录路径以循环方式连续用于创建临时文件。目录名称之间的分隔符是:
Unix上的冒号()和;
Windows上的分号()。 -
--unpack
,-u
打开装有myisampack的桌子的包装 。**