Documentation Home

4.6.4.3 myisamchk 修复选项

myisamchk支持表修复操作的以下选项(当给出诸如--recover--safe-recover):

  • --backup, -B

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

  • --character-sets-dir=dir_name

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

  • --correct-checksum

    更正表的校验和信息。

  • --data-file-length=len, -D len

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

  • --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 开始的版本在修复操作期间不会删除符号链接。

  • --max-record-length=len

    如果myisamchk不能分配内存来容纳它们, 则跳过大于给定长度的行 。

  • --parallel-recover, -p

    笔记

    此选项在 MySQL 8.0.28 中已弃用,并在 MySQL 8.0.30 中删除。

    -r使用与and 相同的技术-n,但使用不同的线程并行创建所有键。这是测试版质量代码。使用风险自负!

  • --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

  • --set-collation=name

    指定用于对表索引进行排序的排序规则。字符集名称由排序规则名称的第一部分暗示。

  • --sort-recover, -n

    强制myisamchk使用排序来解析键,即使临时文件非常大。

  • --tmpdir=dir_name, -t dir_name

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

  • --unpack, -u

    打开一个用 myisampack打包的表。