| title | DROP STATS | |
|---|---|---|
| summary | TiDB 数据库中 DROP STATS 的使用概况。 | |
| aliases |
|
DROP STATS 语句用于从当前所选定的数据库中删除选定表的统计信息。
DropStatsStmt ::=
'DROP' 'STATS' TableName ("PARTITION" partition | "GLOBAL")? ( ',' TableName )*
TableName ::=
Identifier ('.' Identifier)?
以下语句用于删除 TableName 的所有统计信息。如果指定了分区表,则此语句还会删除该表中所有分区的统计信息以及动态裁剪模式下的分区表统计信息。
DROP STATS TableNameQuery OK, 0 rows affected (0.00 sec)
以下语句只删除 PartitionNameList 中指定分区的统计信息:
DROP STATS TableName PARTITION PartitionNameList;Query OK, 0 rows affected (0.00 sec)
以下语句只删除指定表在动态裁剪模式下生成的全局统计信息:
DROP STATS TableName GLOBAL;Query OK, 0 rows affected (0.00 sec)
CREATE TABLE t(a INT);Query OK, 0 rows affected (0.01 sec)
SHOW STATS_META WHERE db_name='test' and table_name='t';+---------+------------+----------------+---------------------+--------------+-----------+-------------------+
| Db_name | Table_name | Partition_name | Update_time | Modify_count | Row_count | Last_analyze_time |
+---------+------------+----------------+---------------------+--------------+-----------+-------------------+
| test | t | | 2020-05-25 20:34:33 | 0 | 0 | NULL |
+---------+------------+----------------+---------------------+--------------+-----------+-------------------+
1 row in set (0.00 sec)
DROP STATS t;Query OK, 0 rows affected (0.00 sec)
DROP STATS 会删除表的 TopN、直方图桶(bucket)等统计信息,但不会删除 STATS_META 中该表的记录。因此,执行 DROP STATS 后,SHOW STATS_META 仍会返回该表的 Modify_count 和 Row_count 信息。
SHOW STATS_META WHERE db_name='test' and table_name='t';+---------+------------+----------------+---------------------+--------------+-----------+-------------------+
| Db_name | Table_name | Partition_name | Update_time | Modify_count | Row_count | Last_analyze_time |
+---------+------------+----------------+---------------------+--------------+-----------+-------------------+
| test | t | | 2020-05-25 20:34:33 | 0 | 0 | NULL |
+---------+------------+----------------+---------------------+--------------+-----------+-------------------+
1 row in set (0.00 sec)
该语句是 TiDB 对 MySQL 语法的扩展。