mysql> select DB_NAME,TABLE_NAME,sum(APPROXIMATE_SIZE)/1024 as table_size_G from INFORMATION_SCHEMA.TIKV_REGION_STATUS where DB_NAME not in ('INFORMATION_SCHEMA','METRICS_SCHEMA','PERFORMANCE_SCHEMA') and TABLE_NAME="bucket" group by DB_NAME,TABLE_NAME order by table_size_G desc limit 100;
+----------+------------+--------------+
| DB_NAME | TABLE_NAME | table_size_G |
+----------+------------+--------------+
| xxxxxx | bucket | 1293.7627 |
+----------+------------+--------------+
我查表数据占用大小是从INFORMATION_SCHEMA.tables 里面查询的
select TABLE_SCHEMA,TABLE_NAME, round(data_length/1024/1024,2),TABLE_ROWS from tables order by DATA_LENGTH desc
你看看2个表统计一致吗
SELECT
db_name,
table_name,
ROUND(SUM(total_size / cnt), 2) Approximate_Size,
ROUND(SUM(total_size / cnt / (SELECT
ROUND(AVG(value), 2)
FROM
METRICS_SCHEMA.store_size_amplification
WHERE
value > 0)),
2) Disk_Size
FROM
(SELECT
db_name,
table_name,
region_id,
SUM(Approximate_Size) total_size,
COUNT(*) cnt
FROM
information_schema.TIKV_REGION_STATUS
WHERE
db_name = @dbname
AND table_name IN (@table_name)
GROUP BY db_name , table_name , region_id) tabinfo
GROUP BY db_name , table_name;