MySQL में information_schema.tables का उपयोग करके तालिका स्तर पर डिस्क उपयोग की जानकारी प्राप्त की जा सकती है। हालांकि, पंक्ति या कॉलम स्तर पर सटीक आकार प्राप्त करना सीधे संभव नहीं है।
तालिका स्तर की जानकारी
SELECT * FROM information_schema.tables
WHERE table_name = 'your_table_name';
उदाहरण
mysql> CREATE TABLE DemoTable (
-> StudentId INT,
-> StudentFirstName VARCHAR(20)
-> );
mysql> INSERT INTO DemoTable VALUES (100, 'Bob'), (101, 'David'), (102, 'Carol');
डिस्क स्पेस जानकारी प्राप्त करें
mysql> SELECT * FROM information_schema.tables
-> WHERE table_name = 'DemoTable';
महत्वपूर्ण कॉलम
| कॉलम | विवरण |
|---|---|
| DATA_LENGTH | डेटा का आकार (बाइट्स में) |
| INDEX_LENGTH | इंडेक्स का आकार (बाइट्स में) |
| DATA_FREE | मुक्त/अपशिष्ट स्थान |
| AVG_ROW_LENGTH | औसत पंक्ति आकार |
| TABLE_ROWS | अनुमानित पंक्तियों की संख्या |
नमूना आउटपुट
+---------------+--------------+---------------+----------+--------+------------+----------------+-------------+-----------------+-----------+
| TABLE_SCHEMA | TABLE_NAME | ENGINE | TABLE_ROWS| AVG_ROW_LENGTH| DATA_LENGTH| INDEX_LENGTH | DATA_FREE | CREATE_TIME |
+---------------+--------------+---------------+----------+------------+------------+--------------+-------------+-----------------+
| web | demotable1600| InnoDB | 3 | 5461 | 16384 | 0 | 0 | 2019-10-19 ... |
+---------------+--------------+---------------+----------+------------+------------+--------------+-------------+-----------------+
सीमाएं
- पंक्ति-स्तर का सटीक आकार प्राप्त करना मुश्किल है (InnoDB पेज-आधारित संग्रहण का उपयोग करता है)
- कॉलम-स्तर का आकार सीधे उपलब्ध नहीं है
TABLE_ROWSInnoDB के लिए अनुमानित होता है
विकल्प
अनुमानित पंक्ति आकार के लिए: SELECT AVG_ROW_LENGTH FROM information_schema.tables ...
कॉलम आकार का अनुमान: CHAR_LENGTH() या OCTET_LENGTH() का उपयोग करके प्रति पंक्ति गणना करें।