आप किसी भी क्वेरी में पंक्तियों के क्रम पर भरोसा नहीं कर सकते हैं जिसमें स्पष्ट ORDER BY
नहीं है खंड। यदि आप किसी आदेशित दृश्य को क्वेरी करते हैं, लेकिन आप ORDER BY
शामिल नहीं करते हैं खंड, सुखद आश्चर्य हो अगर वे सही क्रम में हैं, और इसे फिर से होने की उम्मीद न करें।
ऐसा इसलिए है क्योंकि क्वेरी ऑप्टिमाइज़र क्वेरी, टेबल के आंकड़ों, पंक्तियों की संख्या, इंडेक्स आदि के आधार पर अलग-अलग तरीकों से पंक्तियों तक पहुँचने के लिए स्वतंत्र है। अगर उसे पता है कि आपकी क्वेरी में ORDER BY
नहीं है क्लॉज, पंक्तियों को अधिक तेज़ी से वापस करने के लिए (खांसी) क्रम में पंक्ति क्रम को अनदेखा करना मुफ़्त है।
थोड़ा ऑफ-टॉपिक। . .
जाने-माने कोलाजंस के लिए भी जरूरी नहीं कि सभी प्लेटफॉर्म पर सॉर्ट ऑर्डर एक जैसा हो। मैं समझता हूं कि मैक ओएस एक्स पर यूटीएफ -8 को सॉर्ट करना विशेष रूप से अजीब है। (PostgreSQL डेवलपर इसे टूटा हुआ कहते हैं .) PostgreSQL strcoll() पर निर्भर करता है, जिसे मैं समझता हूं कि OS लोकेशंस पर निर्भर करता है।
यह मेरे लिए स्पष्ट नहीं है कि PostgreSQL 9.1 इसे कैसे संभालेगा। 9.1 में, आपके पास एक से अधिक इंडेक्स हो सकते हैं, जिनमें से प्रत्येक का एक अलग संयोजन होता हैए> . एक ORDER BY जो एक संयोजन को निर्दिष्ट नहीं करता है, आमतौर पर अंतर्निहित आधार तालिका के कॉलम के संयोजन का उपयोग करेगा, लेकिन ऑप्टिमाइज़र इंडेक्स के साथ क्या करेगा जो बेस टेबल में अनइंडेक्स किए गए कॉलम की तुलना में एक अलग कोलाजेशन निर्दिष्ट करता है?