2008-09-24 7 views
8

मैं एक जटिल जटिल वेबसाइट (PHP संचालित) में MySQL का उपयोग करता हूं।क्या MySQL के लिए कोई अच्छा टूल है जो मुझे मेरे प्रश्नों और अनुक्रमणिका सेटिंग्स को अनुकूलित करने में मदद करेगा?

आदर्श रूप से, एक ऐसा उपकरण होगा जिसका उपयोग मैं कर सकता हूं जो मुझे उपयोग कर रहे SQL क्वेरी का परीक्षण करने में मदद करेगा और बेहतर तालिका इंडेक्स का सुझाव देगा जो प्रदर्शन में सुधार करेगा और तालिका स्कैन से बचें।

ऐसा विफल होने पर, कुछ ऐसा जो मुझे बताएगा कि प्रत्येक क्वेरी क्या है, इसलिए मैं अनुकूलन स्वयं कर सकता हूं।

संपादित करें: EXPLAIN से आउटपुट को समझने के लिए एक सरल मार्गदर्शिका ... भी उपयोगी होगी।

धन्यवाद।

उत्तर

18

ठीक है, मेरे उत्तर से पहले, MySQL Performance Blog की सदस्यता लें, मैंने बहुत कुछ सीखा है (और मैंने सोचा कि मुझे पहले से ही MySQL के बारे में बहुत कुछ पता था)। इसके अलावा, उसे एक बिचिन 'टूल पेज here मिला है।

दूसरा बंद, यहाँ कुछ जानकारी के बारे में समझाने है (ओ रेली से उच्च निष्पादन MySQL किताब से संदर्भित):

जब आप किसी एक प्रश्न पर व्याख्या चलाने के लिए, यह आप सब कुछ MySQL जानता है बताता है कि क्वेरी के बारे में क्वेरी में शामिल प्रत्येक तालिका के लिए रिपोर्ट का रूप।

इनमें से प्रत्येक रिपोर्ट आपको बता देंगे ...

  • तालिका के आईडी (क्वेरी में)
  • एक बड़ा चयन में मेज की भूमिका (यदि लागू हो, बस सरल कह सकते हैं अगर यह केवल एक ही टेबल)
  • तालिका के नाम (डुह)
  • प्रकार में शामिल होने के (यदि लागू हो, स्थिरांक)
  • एक (या मेज पर अनुक्रमित की सूची शून्य अगर करने के लिए चूक कोई नहीं), possible_keys
  • सूचकांक कि MySQL के उपयोग करने का फैसला के नाम, कुंजी
  • (बाइट्स में) कुंजी मान का आकार
  • रेफरी कॉलम या मान से मेल के लिए करते हैं कुंजी
  • पंक्तियां पंक्तियों की संख्या है जो MySQL सोचता है कि क्वेरी को पूरा करने के लिए इसे जांचने की आवश्यकता है। इसे यथासंभव न्यूनतम गणना के रूप में रखा जाना चाहिए!
  • ... तो किसी भी अतिरिक्त जानकारी MySQL संप्रेषित करने के लिए

किताब इस तरह की जानकारी प्रदान करने में पूरी तरह से भयानक है चाहता है, इसलिए यदि आप पहले से ही नहीं है, एक खरीद पर हस्ताक्षर करने के अपने मालिक मिलता है।

अन्यथा, मुझे आशा है कि कुछ अधिक जानकार अतः उपयोगकर्ता :)

3

शायद वहाँ क्वेरी एनालॉगर्स हैं, लेकिन पर एक साधारण पहले कट के लिए mysql कमांड लाइन का उपयोग करें, और "bar = 'abc'" foo से चुनें * चुनें। सुनिश्चित करें कि आपके सबसे आम प्रश्न इंडेक्स का उपयोग कर रहे हैं, अनुक्रमिक स्कैन या बड़ी टेबल के प्रकार से बचने का प्रयास करें।

+0

मैंने पहले भी समझाने की कोशिश की है, लेकिन वास्तव में उत्पादन समझ में आ कभी नहीं। मैंने इसे प्रतिबिंबित करने के लिए प्रश्न अपडेट किया है। –

1

आपको Maatkit में देखना चाहिए, जो MySQL कार्यों के सभी प्रकार के लिए एक ओपन सोर्स टूलकिट है। आप जो भी ट्यून करने की कोशिश कर रहे हैं, उसके बारे में अधिक जानकारी के बिना, आपको यह बताना मुश्किल है कि आप कौन से टूल्स का उपयोग करेंगे और कैसे, लेकिन दस्तावेज़ीकरण उत्कृष्ट है और इसमें बहुत सारे एप्लिकेशन शामिल हैं।

4

सबसे सरल चीज़ के रूप में, धीमी क्वेरी लॉग सक्षम करें और देखें कि कौन से प्रश्न धीमे हैं, फिर सुझाए गए अनुसार उनका विश्लेषण करने का प्रयास करें।

0

मदद कर सकते हैं मैं अपने एसक्यूएल फेरबदल के बाकी (SQLyog) एक नया संस्करण है कि एक प्रोफाइलर, जो भयानक है भी शामिल है के लिए उपयोग उपकरण! (मैं उनके लिए काम नहीं है - मैं सिर्फ अपने उत्पाद का उपयोग)

enter image description here

http://www.webyog.com/en/screenshots_sqlyog.php

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

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