2013-02-19 9 views
8

मेरे पास 'million_words' नामक एक साधारण तालिका है। यह दो कॉलम के साथ एक पंक्ति है -> आईडी INT अहस्ताक्षरित नहीं NULL AUTO_INCREMENT प्राथमिक कुंजी & शब्द VARCHAR (50 नहीं NULLएक्स्पलाइन प्रिंटिंग में अतिरिक्त - 'असंभव जहां कॉन्स्ट टेबल पढ़ने के बाद देखा गया'

मैं इस क्वेरी चलाने -:। EXPLAIN SELECT * FROM million_words WHERE word = '-anon'

Extra स्तंभ तो प्रिंट: 'Impossible WHERE noticed after reading const tables, भले ही पंक्ति तालिका में स्पष्ट रूप से मौजूद है

क्या wronf

उत्तर

12

MySQL प्रलेखन से:।

"असंभव कहां स्थिरांक टेबल पढ़ने के बाद देखा":
MySQL सभी स्थिरांक (और सिस्टम) टेबल पढ़ सकते हैं और देखते हैं कि कहां खंड हमेशा गलत है। देखें this


तालिका में अधिकतम एक मिलान पंक्ति है, जो क्वेरी के शुरू में पढ़ रहा है। क्योंकि केवल एक पंक्ति है, इस पंक्ति में कॉलम के मूल्यों को शेष ऑप्टिमाइज़र द्वारा स्थिरांक के रूप में माना जा सकता है। कॉन्स टेबल बहुत तेज हैं क्योंकि वे केवल एक बार पढ़े जाते हैं।

कॉन्स का उपयोग तब किया जाता है जब आप PRIMARY KEY या UNIQUE index के सभी हिस्सों की तुलना निरंतर मानों से करते हैं। this

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