Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MIN/MAX बनाम ORDER BY और LIMIT

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

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

ऐसा लगता है MIN() जाने का रास्ता है - यह सबसे खराब स्थिति में तेज़ है, सर्वोत्तम मामले में अप्रभेद्य है, मानक SQL है और सबसे स्पष्ट रूप से उस मूल्य को व्यक्त करता है जिसे आप प्राप्त करने का प्रयास कर रहे हैं। एकमात्र मामला जहां ऐसा लगता है कि SORT . का उपयोग करना और LIMIT वांछनीय होगा, जैसा कि mson उल्लेख किया गया है, जहां आप एक सामान्य ऑपरेशन लिख रहे हैं जो मनमाना कॉलम से ऊपर या नीचे एन मान ढूंढता है और यह विशेष-केस ऑपरेशन लिखने लायक नहीं है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL 1062 - कुंजी 'प्राथमिक' के लिए डुप्लिकेट प्रविष्टि '0'

  2. मैं एक .NET MySqlCommand में एक MySQL उपयोगकर्ता परिभाषित चर का उपयोग कैसे कर सकता हूं?

  3. क्या सभी टेक्स्ट-आधारित फ़ील्ड के लिए जेनेरिक वर्चर (255) का उपयोग करने के नुकसान हैं?

  4. MySQL प्रतिकृति स्वास्थ्य जाँच स्क्रिप्ट

  5. MySQL कार्यक्षेत्र में संबंध कैसे बनाएं