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

MySQL EXPLAIN कीवर्ड के साथ क्वेरी जानकारी प्राप्त करें

परिचय

MySQL का EXPLAIN कीवर्ड क्वेरी निष्पादन योजना (execution plan) दिखाता है, जिससे आप समझ सकते हैं कि MySQL आपकी क्वेरी को कैसे निष्पादित करेगा। यह प्रदर्शन ट्यूनिंग और इंडेक्स उपयोग विश्लेषण के लिए आवश्यक उपकरण है।

उदाहरण: टेबल और इंडेक्स बनाना

mysql> CREATE TABLE DemoTable1541 (
    -> EmployeeId INT,
    -> EmployeeFirstName VARCHAR(20) NOT NULL
    -> );
Query OK, 0 rows affected (0.94 sec)
mysql> CREATE INDEX emp_name_index ON DemoTable1541(EmployeeFirstName);
Query OK, 0 rows affected (0.75 sec)
Records: 0  Duplicates: 0  Warnings: 0

डेटा डालना

mysql> INSERT INTO DemoTable1541 VALUES(1, 'Robert');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable1541 VALUES(2, 'Adam');
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DemoTable1541 VALUES(3, 'Mike');
Query OK, 1 row affected (0.14 sec)

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable1541;

आउटपुट:

+------------+-------------------+
| EmployeeId | EmployeeFirstName |
+------------+-------------------+
| 1          | Robert            |
| 2          | Adam              |
| 3          | Mike              |
+------------+-------------------+
3 rows in set (0.00 sec)

EXPLAIN का उपयोग

mysql> EXPLAIN SELECT * FROM DemoTable1541 WHERE EmployeeFirstName = 'Mike';

परिणाम

+----+-------------+---------------+------------+------+----------------+----------------+---------+-------+------+----------+-------+
| id | select_type | table         | partitions | type | possible_keys  | key            | key_len | ref   | rows | filtered | Extra |
+----+-------------+---------------+------------+------+----------------+----------------+---------+-------+------+----------+-------+
| 1  | SIMPLE      | DemoTable1541 | NULL       | ref  | emp_name_index | emp_name_index | 62      | const | 1    | 100.00   | NULL  |
+----+-------------+---------------+------------+------+----------------+----------------+---------+-------+------+----------+-------+
1 row in set, 1 warning (0.00 sec)

महत्वपूर्ण कॉलम व्याख्या

कॉलमअर्थ
idSELECT पहचानकर्ता
select_typeSIMPLE, PRIMARY, SUBQUERY, आदि
tableसंदर्भित टेबल
typeजॉइन प्रकार: system, const, eq_ref, ref, range, index, ALL
possible_keysउपयोग किए जा सकने वाले इंडेक्स
keyवास्तव में उपयोग किया गया इंडेक्स
key_lenउपयोग की गई कुंजी की लंबाई
refकुंजी के साथ तुलना किए जाने वाले कॉलम/स्थिरांक
rowsपरीक्षण की जाने वाली अनुमानित पंक्तियों की संख्या
filteredशर्त द्वारा फ़िल्टर की गई पंक्तियों का प्रतिशत
Extraअतिरिक्त जानकारी (Using where, Using index, आदि)

इस उदाहरण में

  • type: ref - इंडेक्स लुकअप का उपयोग (अच्छा)
  • key: emp_name_index - हमारा बनाया इंडेक्स उपयोग हुआ
  • rows: 1 - केवल 1 पंक्ति स्कैन हुई (इष्टतम)

EXPLAIN क्वेरी ऑप्टिमाइजेशन के लिए अनिवार्य उपकरण है।

  1. - MySQL में REGEXP का उपयोग करके डॉट और संख्या वाले रिकॉर्ड कैसे प्राप्त करें?

    MySQL में REGEXP का उपयोग करके डॉट और संख्याओं वाले पैटर्न (जैसे संस्करण संख्या) से मेल खाने वाले रिकॉर्ड प्राप्त किए जा सकते हैं। उदाहरण तालिका बनाएं: mysql> CREATE TABLE DemoTable (Version VARCHAR(20)); mysql> INSERT INTO DemoTable VALUES (1.0.0), (2.s6.9), (1.5.0); डेटा +---------+ | Vers

  1. - MySQL में कॉमा सेपरेटेड मानों के साथ रैंडम पंक्तियाँ कैसे प्राप्त करें?

    MySQL में रैंडम पंक्तियाँ प्राप्त करने के लिए ORDER BY RAND() का उपयोग किया जाता है। यदि आपके कॉलम में कॉमा सेपरेटेड मान हैं, तो आप NOT IN के साथ फ़िल्टर करके रैंडम परिणाम ले सकते हैं। टेबल बनाएं और डेटा डालें mysql> CREATE TABLE DemoTable1835 ( ListOfIds VARCHAR(20) ); mysql> INSERT INT

  1. - Apache के साथ MySQL का उपयोग करना

    आइए समझते हैं कि Apache के साथ MySQL का उपयोग कैसे करें: Apache एक वेब सर्वर सॉफ़्टवेयर है जिसे Apache सॉफ़्टवेयर फाउंडेशन द्वारा विकसित और रखरखाव किया जाता है। यह एक सॉफ़्टवेयर है जो वेब पेज एक्सेस करने के लिए उपयोगकर्ता से अनुरोध लेता है। HTTP अनुरोध पर कुछ सुरक्षा जांच की जाती है और फिर उपयोगक