2012-07-31 8 views
26

मेरे पास एक MySQL क्वेरी है (MySQL 5.0.88 चल रहा है), जिसे मैं तेज़ करने की कोशिश कर रहा हूं। अंतर्निहित तालिका में कई इंडेक्स हैं और प्रश्न में पूछताछ के लिए, गलत इंडेक्स का उपयोग किया जाता है (i_active - 16.000 पंक्तियां, बनाम i_iln - 7 पंक्तियां)।एक MySQL चयन क्वेरी में उपयोग करने के लिए इंडेक्स को कैसे संकेत दें?

मैं MySQL के साथ बहुत अनुभवी नहीं हूं लेकिन पढ़ता हूं use index संकेत है, जो मेरे एसक्यूएल को एक निश्चित अनुक्रमणिका का उपयोग करने के लिए मजबूर कर सकता है। मैं इसे इस तरह कोशिश कर रहा हूं:

SELECT art.firma USE INDEX (i_iln) 
... 

लेकिन यह एक MySQL त्रुटि उत्पन्न करता है।

प्रश्न:
किसी को भी मुझे बता सकते हैं मैं गलत क्या कर रहा हूँ? (। 5.0.88, जो मैं नहीं बदल सकते चल छोड़कर)

+2

इसके लायक होने के लिए, यूएसई इंडेक्स नामित सूचकांक का उपयोग करने के लिए मजबूर नहीं करता है। इसका मतलब है "किसी भी * अन्य * इंडेक्स का उपयोग करने पर विचार न करें।" आपके द्वारा नामित इंडेक्स क्वेरी के लिए अप्रासंगिक हो सकता है, जिस स्थिति में MySQL अभी भी इसका उपयोग नहीं करेगा। –

उत्तर

34

आप याद FROM table

सही एसक्यूएल होना चाहिए:

SELECT art.firma FROM your_table USE INDEX (i_iln) WHERE ....

+7

आह ... 2100ms से 0ms। ठंडा! – frequent

0

Coloumn1, Coloumn2, Coloumn का चयन करें .... सेTABLE_NAMEउपयोग सूचकांक (INDEX_NAME) कहां Coloumn = "हालत";

यदि आपके पास सही इंडेक्स है तो आपको इंडेक्स() का उपयोग करने की आवश्यकता नहीं है। आपकी क्वेरी स्वचालित सही इंडेक्स का चयन करें। अगर आपकी क्वेरी इंडेक्स का उपयोग करने के बाद धीमी हो जाती है तो आपकी अनुक्रमणिका को दोबारा जांचें, इंडेक्स में कुछ गलत है। अग्रिम में धन्यवाद .enter कोड यहाँ

+0

आपका उत्तर कुछ संपादन से पठनीयता, कुछ स्वरूपण और कुछ ग्रंथों के टुकड़ों को हटाने से लाभान्वित होगा जो अप्रयुक्त टेम्पलेट प्लेसहोल्डर्स की तरह दिखते हैं। – Yunnosch

+0

एसओ में आपका स्वागत है। कृपया इसे [कैसे-जवाब दें] (http://stackoverflow.com/help/how-to-answer) पढ़ें और गुणवत्ता उत्तर प्रदान करने के लिए दिशानिर्देश का पालन करें। – thewaywewere

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