जवाबों:
सबसे खराब स्थिति में, जहाँ आप एक अनएन्डेक्सिडेट फ़ील्ड को देख रहे हैं, उपयोग MIN()करने के लिए तालिका के एकल पूर्ण पास की आवश्यकता होती है। का उपयोग कर SORTऔर LIMITएक फ़ाइल की आवश्यकता है। यदि एक बड़ी तालिका के खिलाफ चलाया जाता है, तो संभावित रूप से प्रदर्शन के प्रदर्शन में महत्वपूर्ण अंतर होगा। एक अर्थहीन डेटा बिंदु के रूप में, मेरे देव सर्वर पर 106,000 पंक्ति तालिका के विरुद्ध MIN().36 के समय SORTऔर LIMIT.84 के बीच लिया गया।
यदि, हालांकि, आप एक अनुक्रमित कॉलम देख रहे हैं, तो अंतर नोटिस करना मुश्किल है (अर्थहीन डेटा बिंदु दोनों मामलों में 0.00s है)। हालांकि, स्पष्टीकरण के आउटपुट को देखते हुए, ऐसा लगता MIN()है कि सूचकांक से केवल सबसे छोटे मूल्य को प्लक करने में सक्षम है ('दूर से अनुकूलित तालिकाओं का चयन करें' और 'NULL' पंक्तियों) जबकि SORTऔर LIMITअभी भी सूचकांक के एक आदेशित traversal करने की जरूरत है (106,000 पंक्तियाँ)। वास्तविक प्रदर्शन प्रभाव शायद नगण्य है।
ऐसा लगता MIN()है कि जाने का तरीका है - यह सबसे खराब स्थिति में तेज है, सबसे अच्छा मामले में अविवेच्य है, मानक एसक्यूएल है और सबसे स्पष्ट रूप से उस मूल्य को व्यक्त करता है जिसे आप प्राप्त करने की कोशिश कर रहे हैं। एकमात्र मामला जहां ऐसा लगता है कि उपयोग करना SORTऔर LIMITवांछनीय होगा, जैसा कि उल्लेख किया गया है, जहां आप एक सामान्य ऑपरेशन लिख रहे हैं, जो मनमाने कॉलम से शीर्ष या नीचे एन मान पाता है और यह विशेष-केस ऑपरेशन को लिखने के लायक नहीं है।
SELECT MIN(`field`)
FROM `tbl`;
केवल इसलिए कि यह एएनएसआई संगत है। सीमा 1 MySql के लिए विशेष रूप से है क्योंकि TOP SQL सर्वर के लिए है।
जैसा कि मेसन और सीन मैकोसमेलिंग ने बताया है, MIN बेहतर है।
एक अन्य कारण जहां ORDER BY + LIMIT उपयोगी है, यदि आप MIN कॉलम से भिन्न स्तंभ का मान प्राप्त करना चाहते हैं।
उदाहरण:
SELECT some_other_field, field
FROM tbl
ORDER BY field
LIMIT 1
मुझे लगता है कि उत्तर इस बात पर निर्भर करता है कि आप क्या कर रहे हैं।
यदि आपके पास 1 बंद क्वेरी है और आपके द्वारा निर्दिष्ट के रूप में आशय उतना ही सरल है, तो चयन करें मिनट (फ़ील्ड) बेहतर है।
हालाँकि, इस प्रकार की आवश्यकताओं में परिवर्तन होना आम बात है - शीर्ष n परिणाम, हड़प nth - mth परिणाम, आदि।
मुझे नहीं लगता कि आपके चुने हुए डेटाबेस के लिए यह बहुत भयानक विचार है। डीबीएस बदलना हल्के से नहीं बनाया जाना चाहिए और इसे संशोधित करने की कीमत है जो आप भुगतान करते हैं।
अब अपने आप को सीमित क्यों करें, दर्द के लिए आप बाद में महसूस कर सकते हैं या नहीं कर सकते हैं?
मुझे लगता है कि एएनएसआई जितना संभव हो उतना अच्छा है, लेकिन यह सिर्फ एक दिशानिर्देश है ...
स्वीकार्य प्रदर्शन को देखते हुए मैं पहले का उपयोग करूंगा क्योंकि यह आशय के करीब है।
यदि प्रदर्शन एक मुद्दा था, (अधिकांश आधुनिक ऑप्टिमाइज़र एक ही क्वेरी योजना के लिए दोनों को प्रबल रूप से अनुकूलित करेंगे, हालांकि आपको यह सत्यापित करने के लिए परीक्षण करना होगा) तो निश्चित रूप से मैं तेज़ का उपयोग करूंगा।