myisamchk支持表修复操作的以下选项(当选项如——恢复
或——safe-recover
给出):
——备份
,- b
的备份
.MYD
文件file_name
-时间
. bak——character-sets-dir =
dir_name
字符集的安装目录。看到第10.15节“字符集配置”.
更正表的校验和信息。
——data-file-length =
,len
- d
len
数据文件的最大长度(当重新创建数据文件时)”完整的”).
——延长止
,- e
执行修复,试图从数据文件中恢复每一个可能的行。通常,这也会找到很多垃圾行。除非你非常绝望,否则不要使用这个选项。
参见表检查选项下该选项的说明。
有关输出格式的说明,请参见第4.6.4.5节“使用myisamchk获取表信息”.
——力
,- f
覆盖旧的中间文件(文件名类似于
)而不是中止。tbl_name
.TMD——匙=
,瓦尔
- k
瓦尔
为myisamchk,选项值是一个位值,指示要更新哪些索引。选项值的每个二进制位都对应一个表索引,其中第一个索引位是第0位。选项值为0禁止对所有索引进行更新,这可用于获得更快的插入。禁用的索引可以通过使用myisamchk - r.
——no-symlinks
,- l
不要遵循符号链接。正常情况下myisamchk修复符号链接指向的表。这个选项从MySQL 4.0开始不存在,因为4.0以后的版本在修复操作期间不删除符号链接。
如果跳过大于给定长度的行myisamchk无法分配内存来保存它们。
使用相同的技巧
- r
而且- n
,但是使用不同的线程并行创建所有的键。这是beta质量的代码。使用风险自负!——快速
,q
通过只修改索引文件而不修改数据文件来实现更快的修复。您可以两次指定此选项以强制执行myisamchk在密钥重复的情况下修改原始数据文件。
——恢复
,- r
做一个修复,可以修复几乎所有的问题,除了唯一的键不是唯一的(这是一个极不可能的错误
MyISAM
表)。如果您想恢复一个表,这是首先要尝试的选项。你应该试试——safe-recover
只有在myisamchk报告无法使用恢复表——恢复
.(在不太可能的情况下——恢复
失败,数据文件保持完整。)如果你有很多内存,你应该增加的值
myisam_sort_buffer_size
.——safe-recover
,- o
使用旧的恢复方法进行修复,该方法按顺序读取所有行,并根据找到的行更新所有索引树。这比
——恢复
但可以处理一些非常不可能的情况——恢复
不能。这种恢复方法使用的磁盘空间也比——恢复
.通常情况下,您应该先修理使用——恢复
,然后用——safe-recover
只有在——恢复
失败。如果你有很多内存,你应该增加的值
key_buffer_size
.指定用于对表索引进行排序的排序规则。字符集名称由排序规则名称的第一部分隐含。
——sort-recover
,- n
力myisamchk即使临时文件非常大,也要使用排序来解析键。
——tmpdir =
,dir_name
- t
dir_name
用于存储临时文件的目录的路径。如果这个没有设置,myisamchk的值
TMPDIR
环境变量。——tmpdir
可设置为目录路径列表,这些路径以循环方式依次用于创建临时文件。目录名之间的分隔符是冒号(:
)和分号(;
)。——打开
,- u
打开一张装满了myisampack.