सबसे खराब स्थिति में, जहां आप MIN()
. का उपयोग करके इंडेक्स न किए गए फ़ील्ड को देख रहे हैं तालिका के एक पूर्ण पास की आवश्यकता है। SORT
का उपयोग करना और LIMIT
एक फाइलोर्ट की आवश्यकता है। यदि एक बड़ी तालिका के विरुद्ध चलाया जाता है, तो संभावित प्रदर्शन में महत्वपूर्ण अंतर होगा। एक वास्तविक डेटा बिंदु के रूप में, MIN()
.36 सेकंड लगे जबकि SORT
और LIMIT
मेरे देव सर्वर पर 106,000 पंक्ति तालिका के विरुद्ध .84s लिया।
यदि, हालांकि, आप एक अनुक्रमित कॉलम को देख रहे हैं, तो अंतर को नोटिस करना कठिन है (अर्थहीन डेटा बिंदु दोनों मामलों में 0.00s है)। व्याख्या के आउटपुट को देखते हुए, हालांकि, ऐसा लगता है कि MIN()
इंडेक्स से सबसे छोटे मान को आसानी से प्लक करने में सक्षम है ('टेबल को ऑप्टिमाइज़ किया गया' और 'नल' पंक्तियों का चयन करें) जबकि SORT
और LIMIT
अभी भी सूचकांक (106,000 पंक्तियों) के आदेशित ट्रैवर्सल करने की आवश्यकता है। वास्तविक प्रदर्शन प्रभाव शायद नगण्य है।
ऐसा लगता है MIN()
जाने का रास्ता है - यह सबसे खराब स्थिति में तेज़ है, सर्वोत्तम मामले में अप्रभेद्य है, मानक SQL है और सबसे स्पष्ट रूप से उस मूल्य को व्यक्त करता है जिसे आप प्राप्त करने का प्रयास कर रहे हैं। एकमात्र मामला जहां ऐसा लगता है कि SORT
. का उपयोग करना और LIMIT
वांछनीय होगा, जैसा कि mson
उल्लेख किया गया है, जहां आप एक सामान्य ऑपरेशन लिख रहे हैं जो मनमाना कॉलम से ऊपर या नीचे एन मान ढूंढता है और यह विशेष-केस ऑपरेशन लिखने लायक नहीं है।