【MySQL】查询单表数据大小与索引大小的SQL语句
今天需要做个SQL优化,原来的SQL每次查询都要将近1分钟。
我看了一下数据量,我滴乖乖。
SELECT CONCAT( ROUND( (INDEX_LENGTH + DATA_LENGTH) / 1024 / 1024, 2 ), 'MB') AS 'total_size',
CONCAT(ROUND(DATA_LENGTH / 1024 / 1024, 2),'MB') AS 'data_size',
CONCAT(ROUND(INDEX_LENGTH / 1024 / 1024, 2),'MB') AS 'index_size'
FROM INFORMATION_SCHEMA. TABLES
WHERE TABLE_NAME = 'BU_Machine_Program_History'
查询结果:
2个G的数量。一问,才知道这只是一个月的数据量。
一年要好几亿的数据。
再问,原来是要统计报表。
再看,索引都没有(建个索引要15分钟。)
Java表示头很大。