कभी-कभी, एक एकल SQL क्वेरी सर्वर की सभी समस्याओं का कारण हो सकती है। MySQL में धीमी क्वेरी लॉग को कैप्चर करने या उन प्रश्नों की पहचान करने के लिए अंतर्निहित कार्यक्षमता है जो इष्टतम नहीं हैं और समाप्त होने में लंबा समय लेते हैं, जो आपको सभी धीमी गति से चलने वाले प्रश्नों को लॉग करने की अनुमति देता है, जो MySQL डेटाबेस इंजन द्वारा निष्पादित करने के लिए निर्धारित संख्या में सेकंड लेता है। फ़ाइल। धीमी क्वेरी लॉग सक्रिय नहीं है या डिफ़ॉल्ट रूप से MySQL स्थापना पर है, इस प्रकार यह कम उपयोग किए गए लॉग में से एक है।
धीमी क्वेरी लॉग को सक्षम करने के लिए, बस निम्न पंक्ति को MySQL कॉन्फ़िगरेशन फ़ाइल (my.cnf या my.ini) में जोड़ें, और फिर MySQL सर्वर को पुनरारंभ करें:
log-slow-queries
या,
log-slow-queries = [path to the log file]
बदलें [लॉग फ़ाइल का पथ] धीमी क्वेरी लॉग फ़ाइल के वास्तविक पथ के साथ आप चाहते हैं कि MySQL लॉग को लिखे, जो कि वैकल्पिक मान है।
या आप –log-slow-queries[=file_name] के साथ mysqld शुरू कर सकते हैं धीमी क्वेरी लॉग को सक्षम करने का विकल्प। दोनों सिंटैक्स में, यदि कोई लॉग फ़ाइल नाम निर्दिष्ट नहीं है, तो डिफ़ॉल्ट नाम host_name है -slow.log, MySQL डेटा फ़ाइल निर्देशिका में संग्रहीत। यदि कोई फ़ाइल नाम दिया गया है, लेकिन पूर्ण पथनाम के रूप में नहीं, तो सर्वर फ़ाइल को डेटा निर्देशिका में भी लिखता है।
धीमी क्वेरी लॉग को सक्षम करने के बाद, MySQL उन सभी SQL कथनों के साथ लॉग फ़ाइल बनाएगा, कैप्चर करेगा और लॉग करेगा जिसमें long_query_time से अधिक समय लगा था। निष्पादित करने के लिए सेकंड, जो डिफ़ॉल्ट रूप से 10 सेकंड . पर सेट होता है . प्रारंभिक टेबल लॉक प्राप्त करने का समय निष्पादन समय के रूप में नहीं गिना जाता है। mysqld धीमी क्वेरी लॉग को निष्पादित होने के बाद और सभी ताले जारी होने के बाद एक बयान लिखता है, इसलिए लॉग ऑर्डर निष्पादन आदेश से अलग हो सकता है।
फिर आप लॉग फ़ाइल में सभी धीमी SQL क्वेरी की जाँच कर सकते हैं, और फिर SQL कथनों को अनुकूलित करने के लिए आवश्यक कदम उठा सकते हैं। धीमी क्वेरी लॉग आपको बताएगा कि क्वेरी को पूरा करने में कितना समय लगा, क्वेरी को चलने में कितना समय लगा, इसके ताले को सुरक्षित करने में कितना समय लगा, परिणामस्वरूप कितनी पंक्तियों को वापस भेजा गया, यह निर्धारित करने के लिए कितनी पंक्तियों की जांच की गई परिणाम, किस डेटाबेस का उपयोग किया गया था, और वास्तविक क्वेरी ही। लेकिन ध्यान रखें कि लॉग में निहित एक SQL क्वेरी पहले से ही इष्टतम हो सकती है, लेकिन सिस्टम संसाधनों के कारण धीरे-धीरे निष्पादित किया जाता है, वास्तविक धीमे स्टेटमेंट द्वारा उपयोग किया जाता है जिसे ठीक करने की आवश्यकता होती है।