MySQL 8.4 Release Notes
9.6.4 MyISAM 表优化
为了合并碎片行和消除删除或更新行所导致的空间浪费,运行myisamchk在恢复模式下:
$> myisamchk -r tbl_name
您也可以使用OPTIMIZE TABLE
SQL 语句对表进行优化。OPTIMIZE TABLE
会执行表修复和键分析,并且将索引树排序,以便键查找速度更快。同时,也没有可能出现不想要的工具和服务器之间的交互,因为服务器在使用OPTIMIZE TABLE
时执行所有工作。请参阅第15.7.3.4节,“OPTIMIZE TABLE 语句”。
myisamchk 还有许多其他选项,您可以使用它们来提高表的性能:
-
--analyze
或-a
:执行键分布分析。这可以提高 join 性能,因为它使 join 优化器能够更好地选择join 表的顺序和使用哪些索引。 -
--sort-index
或-S
:对索引块进行排序。这优化了 seeks,并使使用索引的表扫描速度更快。 -
--sort-records=
或index_num
-R
:根据给定的索引对数据行进行排序。这使得您的数据更加局部化,并可能加速使用该索引的范围基于index_num
SELECT
和ORDER BY
操作。
所有可用选项的完整描述,请见第6.6.4节,“myisamchk — MyISAM 表维护工具”。