断片化した行を結合し、行の削除または更新の結果発生した無駄な領域を削除するには、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 テーブルメンテナンスユーティリティー」を参照してください。