MySQL中的数据是以数据库名作为文件夹名存储于机器的文件系统中的,并且在使用独立表空间的情况下,直接查看表的ibd文件大小就基本能确定每个表的大小,而在 TiDB 中,由于其底层存储是基于分布式的存储引擎 TiKV,数据被切分成 SST 文件分布在不同的节点上,因此无法像 MySQL 那样通过文件系统直接查看每个数据库或表的大小,所以需要通过SQL查询的方式来获取各个库及各个表的数据量大小信息

  • 查看TiDB中各个库的大小

SELECT TABLE_SCHEMA AS 'Database', SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 AS 'Size (MB)' FROM INFORMATION_SCHEMA.TABLES GROUP BY TABLE_SCHEMA ORDER BY Size (MB)DESC;

  • 查看某个库下所有表的大小

SELECT TABLE_SCHEMA AS 'Database', TABLE_NAME AS 'Table', SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 AS 'Size (MB)', TABLE_ROWS AS 'Row Count' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'test' GROUP BY TABLE_SCHEMA, TABLE_NAME ORDER BY Size (MB)DESC;

posted on 2024-08-30 17:42  天日梦雪  阅读(317)  评论(0)    收藏  举报