管理者チェック [テーブル|インデックス]
ADMIN CHECK [TABLE|INDEX]ステートメントは、テーブルとインデックスのデータの一貫性をチェックします。
以下はサポートされていません。
- FOREIGN KEY制約を確認しています。
 - クラスター化された主キー使用されている場合は、PRIMARY KEY インデックスをチェックします。
 
ADMIN CHECK [TABLE|INDEX]問題が見つかった場合は、インデックスを削除して再作成することで解決できます。問題が解決しない場合は、 バグを報告する実行できます。
原則
ADMIN CHECK TABLE文は、次の手順を実行してテーブルをチェックします。
各インデックスについて、インデックス内のレコード数がテーブル内のレコード数と同じかどうかを確認します。
各インデックスごとに、各行の値をループし、その値をテーブル内の値と比較します。
ADMIN CHECK INDEXステートメントを使用すると、指定されたインデックスのみがチェックされます。
概要
- AdminCheckStmt
 - TableNameList
 - HandleRange
 
AdminCheckStmt ::=
    'ADMIN' 'CHECK' ( 'TABLE' TableNameList | 'INDEX' TableName Identifier ( HandleRange ( ',' HandleRange )* )? ) 
TableNameList ::=
    TableName ( ',' TableName )*
HandleRange ::= '(' Int64Num ',' Int64Num ')'
例
tbl_nameテーブル内のすべてのデータと対応するインデックスの一貫性をチェックするには、 ADMIN CHECK TABLE使用します。
ADMIN CHECK TABLE tbl_name [, tbl_name] ...;
整合性チェックに合格した場合、空の結果が返されます。そうでない場合は、データに不整合があることを示すエラーメッセージが返されます。
ADMIN CHECK INDEX tbl_name idx_name;
上記の文は、テーブルtbl_nameのインデックスidx_nameに対応する列データとインデックスデータの整合性をチェックするために使用されます。整合性チェックに合格した場合は空の結果が返され、合格しなかった場合は、データが不整合であることを示すエラーメッセージが返されます。
ADMIN CHECK INDEX tbl_name idx_name (lower_val, upper_val) [, (lower_val, upper_val)] ...;
上記の文は、テーブルtbl_nameのインデックスidx_nameに対応する列データとインデックスデータの整合性を、指定されたデータ範囲(チェック対象)でチェックするために使用されます。整合性チェックに合格した場合、空の結果が返されます。そうでない場合は、データが不整合であることを示すエラーメッセージが返されます。
MySQLの互換性
このステートメントは、MySQL 構文に対する TiDB 拡張です。