这些都是垃圾数据吧 ,应该是可以清理掉的吧 。 表不存在了 ,但是统计数据还在 。
(user:tidbdba time: 22:02)[db: yixintui_operate]select * from information_schema.tables where tidb_table_id=465581;
Empty set (3.02 sec)
(user:tidbdba time: 22:02)[db: yixintui_operate]select count(1) from mysql.stats_histograms where table_id=465581 limit 3;
±---------+
| count(1) |
±---------+
| 368 |
统计表里面 按table_id 前面top 500 张表 ,在 information_schema.tables里存在的只有3 张表。其他都是垃圾数据 ,都是已经删掉的表 。或者 rename的表的统计数据 。
select * from information_schema.tables where tidb_table_id in (select table_id from mysql.stats_histograms group by table_id order by count(1) desc limit 500);
系统只有2000多长表 ,统计表里有37929 个不同table_id的统计数据 。
(user:tidbdba time: 22:16)[db: test]select count(1) from information_schema.tables;
| count(1) |
| 2011 |
1 row in set (2.87 sec)
(user:tidbdba time: 22:18)[db: test]select count(distinct table_id) from mysql.stats_histograms ;
| count(distinct table_id) |
| 37929 |
这两个表 会清理 ,可能其他表 也需要统一清理的。
select table_id, hist_id, tot_col_size from mysql.stats_histograms where is_index = 0;
这种sql 全表扫 系统消耗严重 。 这个表里的数据肯定是需要清理的 。
还有很多 update , select 的 table_id 都是 information_schema.tables 里不存在的表 。