जैसा कि अन्य पोस्टर्स का उल्लेख है, यदि आप सॉर्ट ऑर्डर निर्दिष्ट नहीं करते हैं, तो SQL मानक का कहना है कि परिणाम प्रोसेसर को जो भी ऑर्डर मिल सकता है वह सबसे अधिक सुविधाजनक और कुशल पाता है।
मान लें कि आप एक कस्टमर टेबल की सभी पंक्तियों के लिए एक साधारण असाधारण चयन करते हैं, जिसमें कोई अनुक्रमणिका नहीं है और कोई प्राथमिक कुंजी नहीं है। यह काफी संभव है, और यहां तक कि संभावना है कि क्वेरी प्रोसेसर एक सीधी तालिका स्कैन करेगा और पंक्तियों को मूल रूप से डालने के क्रम में उत्पन्न करेगा (आपको जो फीफा व्यवहार आपने देखा था)।
यदि आप फिर राज्य और शहर फ़ील्ड (उस क्रम में) पर एक अनुक्रमणिका जोड़ते हैं, और फिर WHERE STATE = 'NY'
के लिए पूछताछ क्वेरी प्रोसेसर निर्णय ले सकता है कि यह करने के बजाय राज्य = 'NY' के लिए इंडेक्स प्रविष्टियों को स्कैन करने के लिए और अधिक कुशल है एक पूर्ण टेबल स्कैन। इस मामले में यह शायद राज्य, शहर आदेश में पंक्तियों को पूरा करेगा।
यहां तक कि यह निश्चित नहीं है। उदाहरण के लिए यदि क्वेरी प्रोसेसर ने आंकड़े एकत्र किए हैं जो दिखाते हैं कि आपकी तालिका में लगभग सभी राज्य मान 'NY' हैं (शायद क्योंकि डेटाबेस अल्बानी-आधारित उपकरण किराए पर लेने वाले व्यवसाय के लिए है), तो यह निर्णय ले सकता है कि तालिका स्कैन वास्तव में सस्ता है इंडेक्स स्कैन की तुलना में, और आप फिर से फीफो देखेंगे।
कुछ बुनियादी बातों को सीखना एक अच्छा विचार है कि आपका डेटाबेस इसकी क्वेरी कैसे तैयार करता है। आप EXPLAIN
कथन का उपयोग यह देखने के लिए कर सकते हैं कि आपका डीबीएमएस किसी दिए गए प्रश्न को कैसे निष्पादित करेगा, और उसके बाद परिमाण के आदेशों से कुछ मामलों में अपनी क्वेरी को अनुकूलित करने के लिए इसका उपयोग करें। यह सीखने के लिए एक आकर्षक और उपयोगी क्षेत्र है।
स्रोत
2009-11-24 22:43:53
वहाँ परिभाषा के द्वारा, है, * एसक्यूएल अनुरूप डेटाबेस में कोई डिफ़ॉल्ट सॉर्ट क्रम *। अधिकांश डेटाबेस एक ही क्वेरी को निष्पादित किए जाने पर क्वेरी की प्रकृति या यहां तक कि इंडेक्स की स्थिति के आधार पर एक अलग क्रम में रिकॉर्ड लौटा सकता है। आदेश हमेशा महत्वपूर्ण है, आपको हमेशा उस क्रम को निर्दिष्ट करना चाहिए जिसमें आप डेटा चाहते हैं। अनिर्दिष्ट आदेश वाली क्वेरी दोहराया जा सकता है। –