ฉันรู้ว่านี่เก่า แต่ใครบางคนอาจพบว่าสิ่งนี้เกี่ยวข้อง
ใน MySQL ฉันใช้:
SELECT concat(table_schema) 'Database Name',
concat(round(SUM(data_length/power(1024,3)),2),'G') DATA,
concat(round(SUM(index_length/power(1024,3)),2),'G') 'INDEX',
concat(round(SUM(data_free/power(1024,3)),2),'G') 'DATA FREE',
concat(round(sum(data_free)/(SUM(data_length+index_length))*100,2)) '% FRAGMENTED',
concat(round(SUM(data_length+index_length)/power(1024,3),2),'G') TOTAL
FROM information_schema.TABLES
WHERE table_schema NOT IN ('mysql','information_schema','performance_schema')
GROUP BY table_schema;
เนื่องจาก DB ของฉันคือ InnoDB นี่เป็นเพียงการประมาณการ
ฉันเปรียบเทียบผลลัพธ์นี้กับ:
du -sch /location/of_Mysql/* | sort -hr | head -n20
หวังว่านี่จะช่วยคุณได้