目前我陷入困境,通过查询找到碎片表
我正在使用SHOW TABLE STATUS
它给我详细信息
Table_Name,schema_Name,Data_Length,Index_Length,Data_Free等。
使用此信息如何表示此表格为FRAGMENTED
我需要编写一个查询,它会给出碎片表名。
提前致谢。
注意:我谷歌,但我没有得到任何满意的答案。
答案 0 :(得分:0)
您应该使用查询
select
ENGINE,
TABLE_NAME,
Round( DATA_LENGTH/1024/1024) as data_length ,
round(INDEX_LENGTH/1024/1024) as index_length,
round(DATA_FREE/ 1024/1024) as data_free
from information_schema.tables
where DATA_FREE > 0;
之后,你应该得到碎片比例:(data_free /(data_length + index_length))* 100
如果这个数字相当大,我会说超过10%,那么你的表就是碎片。 10%是讨论号码。有些管理员使用20%。无论如何,如果你看到大号,那么你应该注意表