MySQL में सभी टेबल और उनके आकार (MB में) को आकार के अनुसार क्रमबद्ध सूचीबद्ध करने के लिए information_schema.TABLES का उपयोग करें।
क्वेरी
SELECT
TABLE_NAME,
TABLE_ROWS,
DATA_LENGTH,
INDEX_LENGTH,
ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) AS "MB Size"
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'yourDatabaseName'
ORDER BY (DATA_LENGTH + INDEX_LENGTH) ASC;
कॉलम व्याख्या
| कॉलम | विवरण |
| TABLE_NAME | टेबल नाम |
| TABLE_ROWS | अनुमानित पंक्ति संख्या |
| DATA_LENGTH | डेटा आकार (बाइट्स) |
| INDEX_LENGTH | इंडेक्स आकार (बाइट्स) |
| MB Size | कुल आकार मेगाबाइट में |
उदाहरण: 'test' डेटाबेस
SELECT TABLE_NAME, TABLE_ROWS, DATA_LENGTH, INDEX_LENGTH,
ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) AS "MB Size"
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'test'
ORDER BY (DATA_LENGTH + INDEX_LENGTH) ASC;
नमूना आउटपुट (शीर्ष पंक्तियाँ)
| TABLE_NAME | TABLE_ROWS | DATA_LENGTH | INDEX_LENGTH | MB Size |
| empinfoview | 0 | 0 | 0 | 0.00 |
| lookuptable | 0 | 0 | 0 | 0.00 |
| addingcurrencysymboldemo | 4 | 16384 | 0 | 0.02 |
| constraintdemo | 0 | 16384 | 16384 | 0.03 |
| student | 2 | 16384 | 32768 | 0.05 |
महत्वपूर्ण नोट्स
TABLE_ROWS InnoDB के लिए अनुमानित है
- व्यू के लिए DATA_LENGTH = 0
- अवरोही क्रम के लिए
ORDER BY ... DESC
- सिस्टम डेटाबेस बाहर करने के लिए:
AND TABLE_SCHEMA NOT IN ('mysql','information_schema','performance_schema','sys')
अधिक विस्तृत आकार के लिए
SELECT
TABLE_SCHEMA AS `Database`,
TABLE_NAME AS `Table`,
ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS `Size (MB)`,
TABLE_ROWS AS `Rows`
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'yourDatabase'
ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;