2008-09-18 20 views

उत्तर

18

मैं इन तीन लाइनों

 
log_slow_queries 
set-variable = long_query_time=1 
log-queries-not-using-indexes 

पहले और दूसरे एक दूसरे के ऊपर किसी भी प्रश्न प्रवेश करेंगे सलाह देते हैं। जैसा कि अन्य ने एक दूसरी क्वेरी की ओर इशारा किया है, यदि आप अपनी वेबसाइट पर उच्च लेनदेन दर की शूटिंग कर रहे हैं, लेकिन मुझे लगता है कि यह कुछ वास्तविक डब्ल्यूटीएफ को बदलता है; प्रश्न तेज होना चाहिए, लेकिन डेटा के जो भी संयोजन के लिए यह चलाया गया था, वह नहीं था।

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

हालांकि इसके उत्पादन के लिए निश्चित रूप से नहीं, तो इस आखिरी विकल्प

 
log = /var/log/mysql/mysql.log 

सभी प्रश्नों, जो उपयोगी हो सकता है अगर आप धुन किसी विशिष्ट पृष्ठ या कार्रवाई करने के लिए कोशिश कर रहे हैं प्रवेश करेंगे

+0

लॉग-क्वेरी-न-उपयोग-इंडेक्स के बारे में नहीं पता था, धन्यवाद! – Subimage

4

जो भी समय/आप/अनुभव आपके सिस्टम पर एक क्वेरी के लिए अस्वीकार्य रूप से धीमा है।

यह आपके द्वारा चलाए जाने वाले प्रश्नों और सिस्टम की तरह पर निर्भर करता है; कई सेकंड लेने वाली एक क्वेरी इससे कोई फर्क नहीं पड़ता कि यह कुछ बैक-एंड रिपोर्टिंग सिस्टम जटिल डेटा-खनन आदि कर रहा है जहां देरी कोई फर्क नहीं पड़ता है, लेकिन उपयोगकर्ता के सामने आने वाली प्रणाली पर पूरी तरह से अस्वीकार्य हो सकता है, जिसके परिणामस्वरूप तुरंत परिणाम लौटाए जाने की उम्मीद है।

3

इसे जो कुछ भी आप पसंद करते हैं उसे सेट करें। एकमात्र समस्या यह है कि एक स्टॉक MySQL में, इसे केवल 1 सेकंड की वृद्धि में सेट किया जा सकता है, जो कुछ लोगों के लिए बहुत धीमा है।

अधिकतर उपयोग किए जाने वाले उत्पादन सर्वर उन सभी को लॉग इन करने के लिए बहुत अधिक प्रश्न निष्पादित करते हैं। धीमी लॉग लॉग को फ़िल्टर करने का एक तरीका है ताकि हम उन लोगों को देख सकें जो लंबे समय तक लेते हैं (अधिकांश प्रश्नों को लगभग तुरंत निष्पादित किया जा सकता है)। यह एक ब्लंट वाद्य यंत्र का थोड़ा सा है।

यदि आप चाहें तो इसे 1 सेकंड पर सेट करें, तो संभवतः आप डिस्क स्पेस से बाहर नहीं जा रहे हैं या ऐसा करके प्रदर्शन समस्या नहीं बना रहे हैं।

यह वास्तव में धीमी लॉग को सक्षम करने का जोखिम है- ऐसा न करें अगर आपको लगता है कि यह आगे डिस्क या प्रदर्शन समस्याओं का कारण बनने की संभावना है।

बेशक आप एक गैर-उत्पादन सर्वर पर धीमे लॉग को सक्षम कर सकते हैं और अनुरूपित लोड डाल सकते हैं, लेकिन यह कभी भी वही नहीं है।

+0

अब आप इसे माइक्रोसेकंड पर सेट कर सकते हैं। – phirschybar

1

न केवल संकल्प के संबंध में यह एक ब्लंट उपकरण है, बल्कि यह MySQL-instance विस्तृत है, ताकि यदि आपके पास अलग-अलग प्रदर्शन आवश्यकताओं के साथ अलग-अलग डेटाबेस हैं तो आप भाग्य से बाहर हैं। जाहिर है कि इसके आस-पास के तरीके हैं, लेकिन अपनी धीमी लॉग सेटिंग सेट करते समय इसे ध्यान में रखना महत्वपूर्ण है।

आपके आवेदन की प्रदर्शन आवश्यकताओं के अलावा, विचार करने का एक अन्य कारक वह है जिसे आप लॉग करने का प्रयास कर रहे हैं। क्या आप ऐसे प्रश्नों को पकड़ने के लिए लॉग का उपयोग कर रहे हैं जो आपके डीबी इंस्टेंस की स्थिरता को धमकी देंगे (उदाहरण के लिए डेडलॉक्स या कार्टेशियन जुड़ते हैं) या विशिष्ट उपयोगकर्ताओं के प्रदर्शन को प्रभावित करने वाले प्रश्नों और जिनके लिए थोड़ा ट्यूनिंग की आवश्यकता हो सकती है? इससे प्रभावित होगा कि आपने अपनी सीमा तय की है।

3

पीटर जैटसेव ने धीमी क्वेरी लॉग का उपयोग करने के बारे में nice article पोस्ट किया।एक बात वह नोट करती है जो यह महत्वपूर्ण है कि यह भी विचार करना है कि कितनी बार एक निश्चित क्वेरी का उपयोग किया जाता है। दिन में एक बार चलने वाली रिपोर्ट तेजी से होने के लिए महत्वपूर्ण नहीं होती है। लेकिन जो कुछ भी चलाया जाता है वह अक्सर एक समस्या हो सकती है भले ही इसमें आधा सेकेंड लगे। और आप माइक्रोस्कोलो पैच के बिना इसका पता लगा सकते हैं।

संबंधित मुद्दे