4.6.3.4 其他 myisamchk 选项
myisamchk支持除 table 检查和修复以外的其他操作选项:
- --analyze,
-a
分析键值的分布。通过使联接优化器更好地选择联接 table 的 Sequences 和应使用的索引,可以提高联接性能。要获取有关密钥分发的信息,请使用myisamchk --description --verbose tbl_name命令或SHOW INDEX FROM tbl_name
语句。
- --block-search=offset,
-b offset
查找给定偏移量的块所属的记录。
- --description,
-d
打印有关 table 的一些描述性信息。一次或两次指定--verbose选项会产生其他信息。参见第 4.6.3.5 节“使用 myisamchk 获取 table 信息”。
- --set-auto-increment[=value],
-A[value]
强制为新记录的AUTO_INCREMENT
编号从给定值开始(或更高,如果存在具有AUTO_INCREMENT
值如此之大的现有记录)。如果未指定* value
*,则新记录的AUTO_INCREMENT
数字以 table 中当前的最大值加 1 开头。
- --sort-index,
-S
按从高到低的 Sequences 对索引树块进行排序。这样可以优化查找,并使使用索引的 table 扫描更快。
- --sort-records=N,
-R N
根据特定索引对记录进行排序。这使您的数据更加本地化,并可以加快使用此索引的基于范围的SELECT和ORDER BY
操作。 (第一次使用此选项对 table 进行排序时,它可能会非常慢.)要确定 table 的索引号,请使用SHOW INDEX,它以与myisamchk看到它们的 Sequences 相同的 Sequences 显示 table 的索引。索引从 1 开始编号。
如果没有打包键(PACK_KEYS=0
),则它们具有相同的长度,因此当myisamchk对记录进行排序和移动时,它只会覆盖索引中的记录偏移量。如果键已打包(PACK_KEYS=1
),则myisamchk必须先解压缩键块,然后重新创建索引并再次打包键块。 (在这种情况下,重新创建索引比更新每个索引的偏移量要快.)