LOCK STATS

LOCK STATS 语句用于锁定统计信息。

语法图

LockStatsStmt
LOCKSTATSTableNameList
TableNameList
TableName,
TableName
Identifier.Identifier

示例

创建表 t,插入一些数据,在未锁定表 t 的统计信息的情况下成功执行 ANALYZE 语句。

mysql> create table t(a int, b int); Query OK, 0 rows affected (0.03 sec) mysql> insert into t values (1,2), (3,4), (5,6), (7,8); Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> analyze table t; Query OK, 0 rows affected, 1 warning (0.02 sec) mysql> show warnings; +-------+------+-----------------------------------------------------------------+ | Level | Code | Message | +-------+------+-----------------------------------------------------------------+ | Note | 1105 | Analyze use auto adjusted sample rate 1.000000 for table test.t | +-------+------+-----------------------------------------------------------------+ 1 row in set (0.00 sec)

锁定表 t 的统计信息,执行 ANALYZE 语句,warning 提示跳过对表 tANALYZE

mysql> lock stats t; Query OK, 0 rows affected (0.00 sec) mysql> show stats_locked; +---------+------------+----------------+--------+ | Db_name | Table_name | Partition_name | Status | +---------+------------+----------------+--------+ | test | t | | locked | +---------+------------+----------------+--------+ 1 row in set (0.01 sec) mysql> analyze table t; Query OK, 0 rows affected, 2 warnings (0.00 sec) mysql> show warnings; +---------+------+-----------------------------------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------------------------------+ | Note | 1105 | Analyze use auto adjusted sample rate 1.000000 for table test.t | | Warning | 1105 | skip analyze locked table: t | +---------+------+-----------------------------------------------------------------+ 2 rows in set (0.00 sec)

解锁表 t 的统计信息,成功执行 ANALYZE 语句。

mysql> unlock stats t; Query OK, 0 rows affected (0.01 sec) mysql> analyze table t; Query OK, 0 rows affected, 1 warning (0.03 sec) mysql> show warnings; +-------+------+-----------------------------------------------------------------+ | Level | Code | Message | +-------+------+-----------------------------------------------------------------+ | Note | 1105 | Analyze use auto adjusted sample rate 1.000000 for table test.t | +-------+------+-----------------------------------------------------------------+ 1 row in set (0.00 sec)

MySQL 兼容性

该语句是 TiDB 对 MySQL 语法的扩展。

另请参阅