हम SET स्टेटमेंट की मदद से MySQL स्लो क्वेरी लॉग को सक्षम कर सकते हैं।
निम्नलिखित सिंटैक्स है।
SET GLOBAL slow_query_log = 'Value';
उपरोक्त सिंटैक्स में, मान को ON/OFF से भरा जा सकता है। स्लो क्वेरी लॉग को सक्षम करने के लिए, आइए क्वेरी देखते हैं।
mysql> SET GLOBAL slow_query_log = 'ON'; Query OK, 0 rows affected (0.00 sec)
जांचने के लिए कि स्लो क्वेरी ON है, निम्नलिखित क्वेरी लागू करें -
mysql> SHOW GLOBAL VARIABLES LIKE 'slow\_%';
यहां आउटपुट है।
+---------------------+--------------------------+ | Variable_name | Value | +---------------------+--------------------------+ | slow_launch_time | 2 | | slow_query_log | ON | | slow_query_log_file | DESKTOP-QN2RB3H-slow.log | +---------------------+--------------------------+ 3 rows in set (0.00 sec)
हमने स्लो क्वेरी समय को सेकंड में सेट किया है क्योंकि यदि कोई क्वेरी दिए गए सेकंड से अधिक है, तो यह स्लो क्वेरी लॉग फाइल में प्रवेश करेगी।
हम सेकंड भी सेट कर सकते हैं। सेकंड सेट करने के लिए यहां क्वेरी है।
mysql> SET GLOBAL long_query_time = 20; Query OK, 0 rows affected (0.00 sec)
जांचने के लिए कि समय डाला गया है या नहीं।
mysql> SHOW GLOBAL VARIABLES LIKE 'long_query_time';
उपरोक्त क्वेरी का निम्नलिखित आउटपुट है।
+-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 20.000000 | +-----------------+-----------+ 1 row in set (0.00 sec)
उपरोक्त कार्य करने के बाद, हमें लॉग फ्लश करने की आवश्यकता है।
mysql> FLUSH LOGS; Query OK, 0 rows affected (0.25 sec)
नोट - हम इसे my.cnf फाइल की मदद से स्थायी रूप से अक्षम कर सकते हैं। अक्षम करने के लिए slow_query_log = 0 सेट करें।
महत्वपूर्ण:SET GLOBALपरिवर्तन रनटाइम के लिए होते हैं और MySQL पुनरारंभ के बाद रीसेट हो जाते हैं। स्थायी कॉन्फ़िगरेशन के लिएmy.cnf/my.iniमेंslow_query_log=1औरlong_query_time=2सेट करें और MySQL पुनरारंभ करें।log_queries_not_using_indexes=1इंडेक्स का उपयोग न करने वाली क्वेरीज़ को भी लॉग करता है।