इसे जांचने के लिए हमें प्रोफाइलिंग जानकारी की आवश्यकता होती है जो वर्तमान सत्र के दौरान निष्पादित स्टेटमेंट्स के संसाधन उपयोग को इंगित करती है। प्रोफाइलिंग जानकारी SHOW PROFILE और SHOW PROFILES स्टेटमेंट द्वारा प्राप्त की जा सकती है।
इन स्टेटमेंट्स को चलाने से पहले, प्रोफाइलिंग सत्र वेरिएबल को 1 पर सेट करना होगा:
mysql> SET profiling = 1; Query OK, 0 rows affected (0.00 sec)
अब यदि हम SHOW PROFILES स्टेटमेंट चलाएंगे तो यह सर्वर को भेजे गए सबसे हाल के स्टेटमेंट्स की सूची अवधि और क्वेरी आईडी के साथ प्रदर्शित करेगा।
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)
अब मान लीजिए हम किसी विशेष क्वेरी की अवधि जांचना चाहते हैं तो हम SHOW PROFILE FOR QUERY 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)