क्योंकि आपको अभी भी इंडेक्स + डेटा फ़ाइल दोनों से सभी डेटा को पढ़ने की जरूरत है। चूंकि आप किसी where
का उपयोग नहीं कर रहे हैं शर्त - आपके पास हमेशा क्वेरी प्लान होगा, जो सभी डेटा, पंक्ति दर पंक्ति एक्सेस करेगा और आप इसके साथ कुछ नहीं कर सकते।
यदि इस क्वेरी के लिए प्रदर्शन महत्वपूर्ण है और इसे अक्सर किया जाता है - मैं परिणामों को कुछ अस्थायी तालिका में कैश करने और इसे प्रति घंटा (दैनिक, आदि) अपडेट करने का सुझाव दूंगा।
यह धीमा क्यों हो जाता है:क्योंकि इंडेक्स में डेटा पहले से ही सॉर्ट किया जाता है और जब MySQL क्वेरी निष्पादन की लागत की गणना करता है तो यह सोचता है कि पहले से सॉर्ट किए गए डेटा का उपयोग करना बेहतर होगा, फिर इसे समूहित करें, फिर एग्रीगेट्स की गणना करें। लेकिन इस मामले में ऐसा नहीं है।