このセクションでは、myisamchk を使用して、MyISAM
テーブル (データとインデックスを格納するための .MYD
ファイルおよび .MYI
ファイルのあるテーブル) をチェックまたは修復する方法について説明します。 myisamchk の一般的な背景に関しては、セクション4.6.4「myisamchk — MyISAM テーブルメンテナンスユーティリティー」を参照してください。 その他のテーブル修復情報については、セクション2.11.13「テーブルまたはインデックスの再作成または修復」にあります。
myisamchk を使用して、データベーステーブルをチェック、修復、または最適化できます。 次のセクションでは、これらの操作を実行する方法と、テーブル保守スケジュールをセットアップする方法について説明します。 myisamchk を使用して、テーブルに関する情報を取得することについては、セクション4.6.4.5「myisamchk によるテーブル情報の取得」を参照してください。
myisamchk によるテーブルの修復はきわめてセキュアですが、テーブルに対して多くの変更を行う可能性のある修復または保守操作を実行する前に、常にバックアップを作成することをお勧めします。
インデックスに影響する myisamchk 操作により、MyISAM
FULLTEXT
インデックスが、MySQL サーバーで使用されている値と互換性がない全文パラメータで再構築される可能性があります。 この問題を回避するには、セクション4.6.4.1「myisamchk の一般オプション」のガイドラインに従ってください。
MyISAM
テーブルの保守は、myisamchk が実行するものと似た操作を実行する SQL ステートメントを使用しても実行できます。
MyISAM
テーブルをチェックするには、CHECK TABLE
を使用します。MyISAM
テーブルを修復するには、REPAIR TABLE
を使用します。MyISAM
テーブルを最適化するには、OPTIMIZE TABLE
を使用します。MyISAM
テーブルを分析するには、ANALYZE TABLE
を使用します。
これらのステートメントの詳細については、セクション13.7.3「テーブル保守ステートメント」を参照してください。
これらのステートメントは、直接または mysqlcheck クライアントプログラムを利用して使用できます。 myisamchk に勝るこれらのステートメントの利点の 1 つは、サーバーがすべての作業を行うということです。 myisamchk では、myisamchk とサーバー間で不要なやり取りがないように、サーバーが同時にテーブルを使用しないことを確認する必要があります。