ADMIN CHECK [TABLE|INDEX]

The ADMIN CHECK [TABLE|INDEX] statement checks for data consistency of tables and indexes.

It does not support the following:

If ADMIN CHECK [TABLE|INDEX] finds any issues, you can resolve them by dropping and recreating the index. If the issue is not resolved, you can report a bug.

Principles

The ADMIN CHECK TABLE statement takes the following steps to check the table:

  1. For each index, it checks if the number of records in the index is the same as that in the table.

  2. For each index, it loops over the values in each row and compares the values with that in the table.

If you use the ADMIN CHECK INDEX statement, it only checks the specified index.

Synopsis

AdminStmt

ADMIN CHECK [TABLE|INDEX] - 图1

TableNameList

ADMIN CHECK [TABLE|INDEX] - 图2

  1. AdminStmt ::=
  2. 'ADMIN' ( 'SHOW' ( 'DDL' ( 'JOBS' Int64Num? WhereClauseOptional | 'JOB' 'QUERIES' NumList )? | TableName 'NEXT_ROW_ID' | 'SLOW' AdminShowSlow ) | 'CHECK' ( 'TABLE' TableNameList | 'INDEX' TableName Identifier ( HandleRange ( ',' HandleRange )* )? ) | 'RECOVER' 'INDEX' TableName Identifier | 'CLEANUP' ( 'INDEX' TableName Identifier | 'TABLE' 'LOCK' TableNameList ) | 'CHECKSUM' 'TABLE' TableNameList | 'CANCEL' 'DDL' 'JOBS' NumList | 'RELOAD' ( 'EXPR_PUSHDOWN_BLACKLIST' | 'OPT_RULE_BLACKLIST' | 'BINDINGS' ) | 'PLUGINS' ( 'ENABLE' | 'DISABLE' ) PluginNameList | 'REPAIR' 'TABLE' TableName CreateTableStmt | ( 'FLUSH' | 'CAPTURE' | 'EVOLVE' ) 'BINDINGS' )
  3. TableNameList ::=
  4. TableName ( ',' TableName )*

Examples

To check the consistency of all the data and corresponding indexes in the tbl_name table, use ADMIN CHECK TABLE:

  1. ADMIN CHECK TABLE tbl_name [, tbl_name] ...;

If the consistency check is passed, an empty result is returned. Otherwise, an error message is returned indicating that the data is inconsistent.

  1. ADMIN CHECK INDEX tbl_name idx_name;

The above statement is used to check the consistency of the column data and index data corresponding to the idx_name index in the tbl_name table. If the consistency check is passed, an empty result is returned; otherwise, an error message is returned indicating that the data is inconsistent.

  1. ADMIN CHECK INDEX tbl_name idx_name (lower_val, upper_val) [, (lower_val, upper_val)] ...;

The above statement is used to check the consistency of the column data and index data corresponding to the idx_name index in the tbl_name table, with the data range (to be checked) specified. If the consistency check is passed, an empty result is returned. Otherwise, an error message is returned indicating that the data is inconsistent.

MySQL compatibility

This statement is a TiDB extension to MySQL syntax.

See also