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

मैं कैसे जांच सकता हूं कि कंसोल पर प्रिंट किए बिना MySQL क्वेरी कितना समय ले रही है?

<घंटा/>

इसे जांचने के लिए हमारे पास प्रोफाइलिंग जानकारी होनी चाहिए जो वर्तमान सत्र के दौरान निष्पादित बयानों के लिए संसाधन उपयोग को इंगित करती है। प्रोफ़ाइल जानकारी प्रोफ़ाइल दिखाएं . द्वारा प्राप्त की जा सकती है और प्रोफाइल दिखाएं बयान।

इन कथनों को चलाने से पहले, प्रोफाइलिंग सत्र चर को इस प्रकार 1 पर सेट किया जाना चाहिए -

mysql> set profiling = 1;
Query OK, 0 rows affected (0.00 sec)

अब अगर हम प्रोफाइल दिखाएं run चलाएंगे बयान तो यह अवधि और क्वेरी आईडी के साथ सर्वर को भेजे गए सबसे हाल के बयानों की सूची प्रदर्शित करेगा।

mysql> show profiles;
+----------+------------+--------------------------------------+
| Query_ID | Duration   | Query                                |
+----------+------------+--------------------------------------+
| 1        | 0.01602200 | drop table if exists t1              |
| 2        | 0.57223450 | create table t1(id int)              |
| 3        | 0.00015425 | show profile for query1              |
| 4        | 0.22945050 | create table e1(id int)              |
| 5        | 0.09977025 | insert into e1(id) values(3),(4),(5) |
+----------+------------+--------------------------------------+
5 rows in set (0.00 sec)

अब मान लीजिए कि हम किसी विशेष क्वेरी के लिए अवधि की जांच करना चाहते हैं तो हम प्रोफाइल दिखाएं चला सकते हैं क्वेरी query_no . के लिए बयान। उदाहरण के लिए, यदि हम query_id =5 के लिए स्टेटमेंट चलाते हैं तो निम्न आउटपुट होगा -

mysql> show profile for query 5;
+------------------------------+--------------+
| Status                       | Duration     |
+------------------------------+--------------+
| starting                     | 0.000138     |
| checking permissions         | 0.000024     |
| Opening tables               | 0.000057     |
| System lock                  | 0.035186     |
| init                         | 0.000035     |
| update                       | 0.021484     |
| Waiting for query cache lock | 0.000021     |
| update                       | 0.000005     |
| end                          | 0.000024     |
| query end                    | 0.042700     |
| closing tables               | 0.000017     |
| freeing items                | 0.000076     |
| logging slow query           | 0.000003     |
| cleaning up                  | 0.000002     |
+------------------------------+--------------+
14 rows in set (0.00 sec)

  1. समय अंतर कैसे प्राप्त करें यह जांचने के लिए MySQL क्वेरी

    आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.87 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - में डालें DemoTable1570 मान (2019-10-15 16:10:00); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.15 सेकंड) चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें - DemoTabl

  1. क्या मैं क्वेरी कर सकता हूं कि MySQL में कुछ पंक्तियों या स्तंभों में कितना डिस्क स्थान है?

    हाँ, नीचे दिए गए सिंटैक्स का उपयोग करते हुए - जानकारी_स्कीमा.टेबल्स से * चुनें जहां table_name=yourTableName; आइए पहले एक टेबल बनाएं - );क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.51 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1600 मानों (102, कैरोल) में डालें; क्वेरी ठीक

  1. आप MySQL में चुनिंदा क्वेरी द्वारा प्राप्त परिणाम को कैसे ऑर्डर कर सकते हैं?

    किसी तालिका से कुछ डेटा या पंक्तियों का चयन करना आम बात है। पंक्तियों को उसी क्रम में लौटाया जाता है जिसमें वे तालिका में दिखाई देते हैं। हमें कभी-कभी यह आवश्यकता हो सकती है कि तालिका से चुनी गई पंक्तियों को किसी स्तंभ के संबंध में आरोही या अवरोही क्रम में हमें वापस किया जाना चाहिए। कुछ कॉलम के संब