mysql應(yīng)對搜索查詢,如何優(yōu)雅的查找磁盤上的MySQL表大小?
1、查詢所有數(shù)據(jù)庫占用磁盤空間大小
select
TABLE_SCHEMA,
concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,
concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size
from information_schema.tables
group by TABLE_SCHEMA
ORDER BY data_size desc;
2、查詢單個庫中所有表磁盤占用大小
select
TABLE_NAME,
concat(truncate(data_length/1024/1024,2),' MB') as data_size,
concat(truncate(index_length/1024/1024,2),' MB') as index_size
from information_schema.tables
where TABLE_SCHEMA = 'xinyar_erp'
group by TABLE_NAME
order by data_length desc;
3、使用optimize命令
optimize table tb_report_inventory;
使用的時間比較長,需要耐心等待。
注意:optimize執(zhí)行時會將表鎖住,所以不要在高峰期使用。也不要經(jīng)常使用,每月一次就足夠了