ORDER BY क्लॉज पर आप कितना ऑप्टिमाइज़ेशन कर सकते हैं, इसकी एक सीमा है। प्राथमिक जो कभी-कभी मदद करता है वह सही क्रम में स्तंभों के सही सेट पर एक अनुक्रमणिका रखता है। तो, आपके उदाहरण के लिए, एक (एकल, मिश्रित) अनुक्रमणिका:
average_price_per_month ASC, phone_price_guestimate DESC, contract_length ASC
मदद कर सकता है, लेकिन ऑप्टिमाइज़र अभी भी यह तय कर सकता है कि क्वेरी में फ़िल्टर शर्तों से निपटने के लिए किसी अन्य इंडेक्स का उपयोग करना बेहतर है और फिर यह डेटा को इस प्रकार स्वयं ही सॉर्ट करेगा। ध्यान दें कि जब तक इंडेक्स डेटा को बिल्कुल सही क्रमबद्ध क्रम में प्रदान नहीं करता है और इंडेक्स का उपयोग समग्र रूप से क्वेरी को गति देता है, तब तक ऑप्टिमाइज़र इसका उपयोग नहीं करेगा। सॉर्ट किए जाने वाले कॉलम में से केवल एक पर एक इंडेक्स ऑप्टिमाइज़र के लिए एक सीमित लाभ है, और यह आमतौर पर इस तरह के इंडेक्स का उपयोग नहीं करेगा।
विचार करने के लिए एक प्रश्न:
- बिना ORDER BY क्लॉज के क्वेरी कितनी तेजी से काम करती है।
यह आपको छँटाई की लागत का एक बहुत ही सीधा माप देता है। आप ऑर्डर किए बिना 20 एमएस और ऑर्डरिंग के साथ 120 एमएस का उल्लेख करते हैं, इसलिए ऑर्डर द्वारा मामूली महंगा है। अगला प्रश्न हो सकता है "क्या आप अपने आवेदन में अपनी तरह से बेहतर प्रदर्शन कर सकते हैं?"। आप ऐसा करने में सक्षम हो सकते हैं, लेकिन DBMS में सॉर्ट पैकेज आमतौर पर काफी अच्छी तरह से अनुकूलित होता है और आपको इसे हराने के लिए कड़ी मेहनत करने की संभावना है।