ใช้ information_schema.tables
สามารถดูขนาดตารางทุกตารางในฐานข้อมูลได้ด้วยคำสั่งต่อไปนี้:
SELECT TABLE_NAME AS `ALLTABLESNAME`,
ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `TABLESIZEIN(MB)`
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = "yourDatabaseName"
ORDER BY (DATA_LENGTH + INDEX_LENGTH) ASC;
ตัวอย่างการใช้งาน
mysql> SELECT TABLE_NAME AS `ALLTABLESNAME`,
-> ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `TABLESIZEIN(MB)`
-> FROM information_schema.TABLES WHERE TABLE_SCHEMA = "business"
-> ORDER BY (DATA_LENGTH + INDEX_LENGTH) ASC;
ผลลัพธ์ตัวอย่าง
+------------------------------------------------------------------+-----------------+ | ALLTABLESNAME | TABLESIZEIN(MB) | +------------------------------------------------------------------+-----------------+ | studentrecordwithmyisam | 0 | | querydatedemo | 1 | | rownumberdemo | 0 | | secondtable | 0 | | spacecolumn | 2 | | table1 | 0 | | tbldemotrail | 2 | | tblstudent | 0 | | ... (ตารางอื่นๆ อีกมาก) | ... | +------------------------------------------------------------------+-----------------+ 26 rows in set (10.29 sec)
คำอธิบาย
DATA_LENGTH: ขนาดข้อมูล (ไบต์)INDEX_LENGTH: ขนาดดัชนี (ไบต์)- หารด้วย 1024 สองครั้ง เพื่อแปลงเป็น MB
ROUND(): ปัดเศษเป็นจำนวนเต็ม