4.6.3.3 myisamchk 维修选项

myisamchk支持以下 table 修复操作选项(当提供诸如--recover--safe-recover之类的选项时执行的操作):

.MYD文件备份为file_name-time.BAK

字符集的安装目录。参见第 10.15 节“字符集配置”

更正 table 的校验和信息。

数据文件的最大长度(在“满”时重新创建数据文件时)。

进行修复以尝试从数据文件中恢复所有可能的行。通常,这还会发现很多垃圾行。除非您绝望,否则不要使用此选项。

另请参阅 table 检查选项下对此选项的描述。

有关输出格式的说明,请参见第 4.6.3.5 节“使用 myisamchk 获取 table 信息”

覆盖旧的中间文件(名称如tbl_name.TMD的文件)而不是中止。

对于myisamchk,选项值是一个位值,指示要更新的索引。选项值的每个二进制位对应于一个 table 索引,其中第一个索引是位 0.选项值 0 禁用对所有索引的更新,该更新可用于更快地插入。可以使用myisamchk -r重新激活已停用的索引。

不要遵循符号链接。通常myisamchk修复符号链接指向的 table。从 MySQL 4.0 开始,此选项不存在,因为从 4.0 开始的版本不会在修复操作期间删除符号链接。

如果myisamchk无法分配内存来容纳行,则跳过大于给定长度的行。

使用与-r-n相同的技术,但使用不同的线程并行创建所有键。 这是 Beta 质量代码。使用后果自负!

通过仅修改索引文件而不是数据文件来实现更快的修复。您可以指定两次此选项,以在密钥重复的情况下强制myisamchk修改原始数据文件。

进行修复可以解决几乎所有问题,但唯一键不是唯一的(对于MyISAMtable,这是极不可能的错误)。如果要恢复 table,可以选择先尝试。仅当myisamchk报告无法使用--recover恢复该 table 时,才应尝试--safe-recover。 (在极少数情况下--recover失败,数据文件保持不变。)

如果您有很多内存,则应增加myisam_sort_buffer_size的值。

使用旧的恢复方法进行修复,该方法将按 Sequences 读取所有行,并根据找到的行更新所有索引树。这比--recover慢一个数量级,但可以处理--recover无法解决的几种非常不可能的情况。这种恢复方法所使用的磁盘空间也比--recover小得多。通常,您应该首先使用--recover进行修复,然后仅在--recover失败时使用--safe-recover进行修复。

如果您有很多内存,则应增加key_buffer_size的值。

指定用于排序 table 索引的排序规则。字符集名称由排序规则名称的第一部分隐含。

强制myisamchk使用排序来解析密钥,即使临时文件很大。

用于存储临时文件的目录的路径。如果未设置,则myisamchk使用TMPDIR环境变量的值。可以将--tmpdir设置为目录路径列 table,该目录路径以循环方式连续用于创建临时文件。目录名称之间的分隔符是 Unix 上的冒号(:)和 Windows 上的分号(;)。

解压缩用myisampack打包的 table。