CHECK TABLE tbl_name[,tbl_name...] [option [option...]] option = QUICK | FAST | MEDIUM | EXTENDED | CHANGED
        CHECK TABLE は、MyISAM
        テーブルと InnoDB
        テーブルにのみ有効です。MyISAM
        テーブルの場合、このテーブルで myisamchk
        --medium-check table_name
        を実行するのと同じです。
      
        オプションを何も指定しなければ、MEDIUM
        が使用されます。
      
        1
        つまたは複数のテーブルのエラーをチェックします。MyISAM
        テーブルでは、キー統計が更新されます。このコマンドは、以下のカラムで構成されるテーブルを返します。
      
| カラム | 値 | 
| Table | テーブル名 | 
| Op | 常に check | 
| Msg_type | status、error、info、warningのいずれか | 
| Msg_text | メッセージ | 
        注意:
        このステートメントは、チェックした各テーブルに関する多くの情報レコードを生成します。
        正常な場合、Msg_type は
        status で、Msg_text
        は通常 OK になります。
        OK または Table is already up to
        date
        が得られなければ、テーブルの修復が必要と考えられます。See
        項4.5.6. 「myisamchk
        を使用したテーブルの保守とクラッシュのリカバリ」。 Table is already
        up to date
        は、テーブルのストレージマネージャが、そのテーブルにチェックが必要ないと判断したことを意味します。
      
以下のチェックタイプがあります。
| タイプ | 意味 | 
| QUICK | 不正リンクをチェックするためのレコードスキャンを実行しない。 | 
| FAST | 正しく閉じられなかったテーブルだけをチェックする。 | 
| CHANGED | 前回のチェック後に変更されたテーブルと、正しく閉じられなかったテーブルだけをチェックする。 | 
| MEDIUM | レコードをスキャンして、削除されたリンクが問題なかったことを確認する。また、レコードのキーチェックサムを計算し、キーの計算されたチェックサムを使って確認する。 | 
| EXTENDED | 各レコードですべてのキーの完全キールックアップを実行する。テーブルの整合性が 100% 保証されるが、時間がかかる。 | 
        動的サイズの MyISAM
        テーブルでは、チェックが開始された場合、常に
        MEDIUM
        チェックが実行されます。静的サイズのレコードは破損していることが非常にまれなので、QUICK
        および FAST
        でレコードスキャンをスキップします。
      
チェックオプションは以下のように組み合わせることができます。以下の例では、テーブルが正しく閉じられたかどうかを確認するクイックチェックを行います。
CHECK TABLE test_table FAST QUICK;
        注意: 場合によっては
        CHECK TABLE
        はテーブルを変更します。これは、テーブルに
        'corrupted' または 'not closed properly'
        というマークがあるのに、CHECK
        TABLE
        がテーブル内に問題を発見しなかった場合に発生します。この場合、CHECK
        TABLE はテーブルを OK とマークします。
      
テーブルが破損している場合、データ部分よりもインデックスに問題のある方が可能性が高いです。上記のチェックタイプはいずれも、インデックスを完全にチェックするのでほとんどのエラーは発見できます。
        問題がないと思われるテーブルをチェックする場合、チェックオプションを使用しないか、または
        QUICK
        オプションを使用します。QUICK
        は、急いでいるとき、およびデータファイルのエラーが見逃されるかもしれないという非常に小さな危険性を無視できる場合に使用します。ほとんどの場合、MySQL
        は通常どおりに使用していれば、データファイルのエラーを発見します。発見した場合、そのテーブルには
        'corrupted'
        のマークが付き、修復するまでそのテーブルは使用できません。
      
        FAST および CHANGED
        は、テーブルをときどきチェックしたい場合に、スクリプトから(たとえば
        cron
        から)実行されることを想定しています。通常は、CHANGED
        よりも FAST
        の方を使用してください(これが当てはまらないのは、MyISAM
        コード内にバグが疑われる場合のみです)。
      
        EXTENDED
        は、通常のチェック後に、MySQL
        がレコードを更新したりキーでレコードを検索しようとした際に、不自然なエラーが発生する場合にのみ使用します(通常のチェックが正常に終了した後でエラーが発生するのは非常にまれなことです)。
      
        CHECK TABLE
        で報告される問題の中には、自動的に修正されないものがあります。
      
            Found row where the auto_increment column has the
            value 0。
          
            これは、AUTO_INCREMENT
            インデックスカラムの値が 0
            になっているレコードがテーブルにあることを意味する(UPDATE
            ステートメントで明示的に
            AUTO_INCREMENT カラム値を 0
            に設定すれば、このカラムが 0
            のレコードを作成することは可能である)。
          
            これ自体はエラーではないが、テーブルをダンプしてリストアしようとしたり、テーブルで
            ALTER TABLE
            を実行しようとすると問題が発生する。この場合、AUTO_INCREMENT
            カラムは AUTO_INCREMENT
            カラムのルールに基づいて値を変更するため、重複キーエラーなどの原因となる。
          
            警告を消すには、UPDATE
            ステートメントを実行してこのカラム値を 0
            以外の値に設定する。
          
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

