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