Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में विशिष्ट पंक्तियों या कॉलम द्वारा उपयोग की गई डिस्क स्पेस कैसे जांचें?

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_ROWS InnoDB के लिए अनुमानित होता है

विकल्प

अनुमानित पंक्ति आकार के लिए: SELECT AVG_ROW_LENGTH FROM information_schema.tables ...

कॉलम आकार का अनुमान: CHAR_LENGTH() या OCTET_LENGTH() का उपयोग करके प्रति पंक्ति गणना करें।

  1. - MySQL में एक क्वेरी से एकाधिक पंक्तियां कैसे प्राप्त करें

    IN() ऑपरेटर के साथ एकाधिक ID वाली पंक्तियां चुनना एक ही क्वेरी में कई विशिष्ट ID वाली पंक्तियां प्राप्त करने के लिए WHERE id IN (val1, val2, ...) का उपयोग करें। टेबल और डेटा CREATE TABLE DemoTable ( Id INT, Name VARCHAR(100) ); Query OK, 0 rows affected (0.60 sec) INSERT INTO DemoTable V

  1. - एकल MySQL क्वेरी में एकाधिक पंक्तियां कैसे प्राप्त करें

    LIKE ऑपरेटर का उपयोग करके पैटर्न मिलान के साथ एकाधिक पंक्तियां प्राप्त करना एकल MySQL क्वेरी में एकाधिक पंक्तियां प्राप्त करने के लिए LIKE ऑपरेटर का उपयोग करें। पहले टेबल बनाएं: create table DemoTable1385 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20) ); Query OK, 0 rows affected (0

  1. - MySQL में UNIQUE कंस्ट्रेंट से पंक्ति विशिष्टता सुनिश्चित करें

    MySQL में UNIQUE कंस्ट्रेंट (इंडेक्स) का उपयोग करके एक या अधिक कॉलम के संयोजन को अद्वितीय (unique) बना सकते हैं, जिससे डुप्लिकेट पंक्तियां रोकी जाती हैं। सिंटैक्स -- टेबल बनाते समय CREATE TABLE टेबल_नाम ( कॉलम1 टाइप, कॉलम2 टाइप, UNIQUE (कॉलम1, कॉलम2, ...) ); -- मौजूदा टेबल पर ALTER TAB