MySQL में OPTIMIZE TABLE से टेबल ऑप्टिमाइज़ करना
पंक्तियाँ हटाने के बाद टेबल को ऑप्टिमाइज़ करने के लिए OPTIMIZE TABLE कमांड का उपयोग करें। यह खाली स्थान पुनः प्राप्त करता है और इंडेक्स पुनर्निर्माण करता है।
टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(100)
);
Query OK, 0 rows affected (1.38 sec)
mysql> INSERT INTO DemoTable(Name) VALUES('Chris');
Query OK, 1 row affected (0.27 sec)
mysql> INSERT INTO DemoTable(Name) VALUES('Robert');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable(Name) VALUES('Bob');
Query OK, 1 row affected (0.22 sec)
mysql> INSERT INTO DemoTable(Name) VALUES('David');
Query OK, 1 row affected (0.38 sec)
पंक्तियाँ हटाना
mysql> DELETE FROM DemoTable WHERE Id IN (1, 3); Query OK, 2 rows affected (0.29 sec) mysql> SELECT * FROM DemoTable;
+----+--------+ | Id | Name | +----+--------+ | 2 | Robert | | 4 | David | +----+--------+ 2 rows in set (0.00 sec)
टेबल ऑप्टिमाइज़ करना
mysql> OPTIMIZE TABLE DemoTable;
+------------------+----------+----------+-------------------------------------------------------------------+ | Table | Op | Msg_type | Msg_text | +------------------+----------+----------+-------------------------------------------------------------------+ | web.DemoTable | optimize | note | Table does not support optimize, doing recreate + analyze instead | | web.DemoTable | optimize | status | OK | +------------------+----------+----------+-------------------------------------------------------------------+ 2 rows in set (4.32 sec)
व्याख्या: InnoDB टेबल के लिए OPTIMIZE TABLE वास्तव में ALTER TABLE ... FORCE चलाता है (टेबल पुनर्निर्माण + विश्लेषण)। संदेश Table does not support optimize, doing recreate + analyze instead सामान्य है।
कब उपयोग करें: बड़ी संख्या में पंक्तियाँ हटाने या अपडेट करने के बाद, या जब टेबल फ्रैगमेंटेड हो।