title | summary |
---|---|
SHOW STATS_LOCKED |
TiDB 数据库中 SHOW STATS_LOCKED 的使用概况。 |
SHOW STATS_LOCKED
语句显示统计信息被锁定的表。
警告:
锁定统计信息目前为实验特性,不建议在生产环境中使用。
ShowStatsLockedStmt ::= 'SHOW' 'STATS_LOCKED' ShowLikeOrWhereOpt
ShowLikeOrWhereOpt ::= 'LIKE' SimpleExpr | 'WHERE' Expression
创建表 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
语句,使用 SHOW STATS_LOCKED
可查看表 t
的统计信息已被锁定。warning 提示跳过对表 t
的 ANALYZE
。
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)
该语句是 TiDB 对 MySQL 语法的扩展。