यह गाइड बताएगी कि MySQL में "स्लो क्वेरी" लॉगिंग कैसे सेट करें ताकि आप पता लगा सकें कि कौन सी क्वेरीज़ धीमेपन का कारण बन रही हैं।
यदि आप प्रोडक्शन MySQL सर्वर चलाते या प्रशासित करते हैं, तो यह काफी संभावना है कि यह कभी-कभी थोड़ा धीमा चलता है, और यह पता लगाना कि क्यों, एक बहुत समय लेने वाला प्रयास हो सकता है। उस क्वेरी को इंगित करना जो डेटाबेस को धीमा कर रही है, ट्रैक करना कठिन हो सकता है। MySQL में आपकी मदद के लिए एक विकल्प है। यह स्लो क्वेरीज़ को लॉग करने के विकल्प के साथ आता है। इस तरह जब आप पाते हैं कि आपका डेटाबेस सर्वर सामान्य से धीमा चल रहा है, तो आप इस लॉग फ़ाइल को टेक्स्ट एडिटर में खोल सकते हैं और देख सकते हैं कि कौन सी क्वेरीज़ धीमी चल रही हैं। आइए देखें कि इसे कैसे सेट करें।
सबसे पहले अपने MySQL सर्वर की कॉन्फ़िगरेशन फ़ाइल my.cnf खोलें। लिनक्स पर यह /etc डायरेक्टरी में होनी चाहिए। देखें कि क्या पैरामीटर log-slow-queries पहले से सेट है। यदि नहीं, तो इसे इस तरह सेट करें:
log-slow-queries = /var/log/mysql/mysql-slow.log
आपको वह समय भी सेट करना होगा जिसके बाद किसी क्वेरी को स्लो क्वेरी माना जाए। मेरे सर्वर पर मैंने इसे 30 सेकंड पर सेट किया है, जैसे:
long_query_time = 30
MySQL सर्वर को रीस्टार्ट करें, और फिर mysql-slow.log फ़ाइल पर नज़र रखें। जब भी कोई क्वेरी पूरा होने में 30 सेकंड से अधिक समय लेती है, या आपने my.cnf में जो भी सेट किया है, तो क्वेरी mysql-slow.log में लॉग हो जाएगी। अब MySQL क्वेरीज़ को डीबग करना आपके लिए बहुत सरल और तेज़ होना चाहिए। इस फ़ाइल को समय-समय पर जांचना याद रखें। एक क्रॉन जॉब सेटअप करना उपयोगी हो सकता है जो आपको हर कुछ दिनों में यह फ़ाइल मेल कर दे।