myisamchk支持表修复操作的以下选项(当给出诸如--recover
或
--safe-recover
):
--backup
,-B
将
.MYD
文件备份为file_name
-time
.BAK安装字符集的目录。请参阅 第 10.15 节,“字符集配置”。
更正表的校验和信息。
--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 开始的版本在修复操作期间不会删除符号链接。
如果myisamchk不能分配内存来容纳它们, 则跳过大于给定长度的行 。
-
笔记
此选项在 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
。指定用于对表索引进行排序的排序规则。字符集名称由排序规则名称的第一部分暗示。
--sort-recover
,-n
强制myisamchk使用排序来解析键,即使临时文件非常大。
--tmpdir=
,dir_name
-t
dir_name
用于存放临时文件的目录路径。如果未设置,myisamchk使用
TMPDIR
环境变量的值。--tmpdir
可以设置为以循环方式连续使用的目录路径列表,用于创建临时文件。目录名称之间的分隔符:
在 Unix 上是冒号 ( ),;
在 Windows 上是分号 ( )。--unpack
,-u
打开一个用 myisampack打包的表。