MySQL 8.0 リファレンスマニュアル


7.6.4 MyISAM テーブルの最適化

断片化した行を結合し、行の削除または更新の結果発生した無駄な領域を削除するには、myisamchk をリカバリモードで実行します。

shell> myisamchk -r tbl_name

OPTIMIZE TABLE SQL ステートメントを使用して、同様にテーブルを最適化することができます。 OPTIMIZE TABLE はテーブルの修復とキー分析を行い、さらに、キーのルックアップが速くなるように、インデックスツリーをソートします。 OPTIMIZE TABLE を使用すると、サーバーがすべての作業を実行するため、ユーティリティーとサーバー間の不要なやり取りの可能性もなくなります。 セクション13.7.3.4「OPTIMIZE TABLE ステートメント」を参照してください。

myisamchk には、テーブルのパフォーマンスを向上させるために使用できる多数のその他オプションがあります。

  • --analyze または -a: キー分布分析を実行します。 これは、結合オプティマイザが、テーブルを結合する順番と、それが使用するインデックスをより適切に選択できるようにすることで、結合パフォーマンスを向上させます。

  • --sort-index または -S: インデックスブロックをソートします。 これはシークを最適化し、インデックスを使用するテーブルスキャンを高速化します。

  • --sort-records=index_num または -R index_num: 特定のインデックスに従って、データ行をソートします。 これにより、データが大幅に局所に集中化されるため、このインデックスを使用する、範囲に基づいた SELECT または ORDER BY 操作が高速化する可能性があります。

利用可能なすべてのオプションの完全な説明については、セクション4.6.4「myisamchk — MyISAM テーブルメンテナンスユーティリティー」を参照してください。


関連キーワード:  テーブル, バックアップ, リカバリ, インデックス, mysqldump, myisamchk, サーバー, ダンプ, 結合, OPTIMIZE