6.6.4.3 其他 myisamchk 选项
myisamchk 支持以下选项用于表修复操作(在提供了选项,如--recover
或--safe-recover
时执行):
-
--backup
,-B
Command-Line Format --backup
将
.MYD
文件备份到file_name
-time
.BAK -
Command-Line Format --character-sets-dir=path
Type 字符串 Default Value [none]
字符集安装目录。请参阅第12.15节,“字符集配置”。
-
Command-Line Format --correct-checksum
更正表的校验信息。
-
--data-file-length=
,len
-D
len
Command-Line Format --data-file-length=len
Type 数字 数据文件的最大长度(在重新创建数据文件时,文件已满时)。
-
--extend-check
,-e
Command-Line Format --extend-check
执行一个尝试从数据文件中恢复每个可能行的修复操作。通常,这也会找到许多垃圾行。不要在没有其他选择的情况下使用这个选项。
请参阅该选项在表检查选项中的描述。
输出格式的描述,请见第6.6.4.5节,“使用 myisamchk 获取表信息”。
-
--force
,-f
Command-Line Format --force
覆盖旧的中间文件(名称类似于
)而不是中止操作。tbl_name
.TMD -
--keys-used=<val>
,-k <val>
Command-Line Format --keys-used=val
Type 数字 对于myisamchk,选项值是一个位值,指示哪些索引需要更新。每个二进制位对应一个表索引,其中第一个索引是位0。选项值为0将禁用所有索引的更新,可以用于获取更快的插入操作。已停用的索引可以通过使用myisamchk -r重新激活。
-
Command-Line Format --max-record-length=len
Type 数字 如果myisamchk无法分配内存来保存大于给定长度的行,则跳过这些行。
-
--quick
,-q
Command-Line Format --quick
通过修改索引文件,而不是数据文件,实现更快的修复。您可以将该选项指定两次,以强制myisamchk修改原始数据文件,以解决重复键问题。
-
--recover
,-r
Command-Line Format --recover
执行一个可以修复几乎任何问题(除了非唯一键)的修复操作。如果您想恢复表,这是首选的选项。只有在myisamchk报告无法使用
--recover
修复表时,才尝试使用--safe-recover
。(在极不可能的情况下,如果--recover
失败,数据文件将保持完整。)如果您有充足的内存,您应该增加
myisam_sort_buffer_size
的值。 -
--safe-recover
,-o
Command-Line Format --safe-recover
使用老式恢复方法,读取所有行并根据找到行更新索引树。这比
--recover
慢了一个数量级,但可以处理一些非常不可能的情况,这些情况--recover
不能处理。此恢复方法也使用的磁盘空间少于--recover
。通常情况下,您应该首先使用--recover
,然后在--safe-recover
失败时使用。如果您有很多内存,您应该增加
key_buffer_size
的值。 -
Command-Line Format --set-collation=name
Type 字符串 指定用于排序表索引的排序规则。字符集名称由排序规则名称的前部分隐含。
-
--sort-recover
,-n
Command-Line Format --sort-recover
强制myisamchk使用排序来解决键,即使临时文件将非常大。
-
--tmpdir=
,dir_name
-t
dir_name
Command-Line Format --tmpdir=dir_name
Type 目录名称 要用于存储临时文件的目录路径。如果未设置,这myisamchk将使用环境变量
TMPDIR
的值。--tmpdir
可以设置为一个目录路径列表,用于轮流使用创建临时文件。目录名称之间的分隔符是 Unix 上的冒号 (:
) 和 Windows 上的分号 (;
)。 -
--unpack
,-u
Command-Line Format --unpack
解压一个使用myisampack打包的表。