EXPLAIN: क्वेरी निष्पादन योजना दिखाता है, क्वेरी नहीं चलाता
EXPLAIN कीवर्ड बताता है कि MySQL क्वेरी को कैसे निष्पादित करेगा। पहले टेबल बनाएं:
mysql> create table DemoTable1375 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName varchar(20), INDEX FIRST_INDEX(FirstName) ); Query OK, 0 rows affected (0.73 sec)
रिकॉर्ड डालें:
mysql> insert into DemoTable1375(FirstName) values('Chris'); Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable1375(FirstName) values('Bob'); Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1375(FirstName) values('Sam'); Query OK, 1 row affected (1.06 sec)
mysql> insert into DemoTable1375(FirstName) values('David'); Query OK, 1 row affected (0.09 sec)
सभी रिकॉर्ड देखें:
mysql> select * from DemoTable1375;
आउटपुट:
+----+-----------+ | Id | FirstName | +----+-----------+ | 2 | Bob | | 1 | Chris | | 4 | David | | 3 | Sam | +----+-----------+ 4 rows in set (0.00 sec)
MySQL EXPLAIN का उपयोग:
mysql> explain select * from DemoTable1375;
आउटपुट:
+----+-------------+---------------+------------+-------+---------------+-------------+---------+------+------+----------+-------------+ | id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra | +----+-------------+---------------+------------+-------+---------------+-------------+---------+------+------+----------+-------------+ | 1 | SIMPLE | DemoTable1375 | NULL | index | NULL | FIRST_INDEX | 63 | NULL | 4 | 100.00 | Using index | +----+-------------+---------------+------------+-------+---------------+-------------+---------+------+------+----------+-------------+ 1 row in set, 1 warning (0.03 sec)
व्याख्या: EXPLAIN क्वेरी को **निष्पादित नहीं करता**। यह केवल क्वेरी निष्पादन योजना दिखाता है: किस टेबल को एक्सेस किया जाता है, किस इंडेक्स का उपयोग होता है, कितनी पंक्तियों की जांच होती है, जॉइन प्रकार आदि। "Using index" का अर्थ है कवरिंग इंडेक्स का उपयोग हुआ (टेबल एक्सेस की आवश्यकता नहीं)। यह प्रदर्शन ट्यूनिंग के लिए महत्वपूर्ण टूल है।