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

SQL IN खंड अलग-अलग प्रश्नों की तुलना में धीमा है

यह MySQL में एक ज्ञात कमी है।

यह अक्सर सच होता है कि UNION . का उपयोग करना आपके द्वारा दिखाए जाने वाली श्रेणी क्वेरी से बेहतर प्रदर्शन करता है। MySQL IN (...) . का उपयोग करके अभिव्यक्तियों के लिए बहुत समझदारी से अनुक्रमणिका का उपयोग नहीं करता है . OR . के साथ बूलियन एक्सप्रेशन के लिए ऑप्टिमाइज़र में एक समान छेद मौजूद है ।

देखें http ://www.mysqlperformanceblog.com/2006/08/10/using-union-to-implement-loose-index-scan-to-mysql/ कुछ स्पष्टीकरण और विस्तृत बेंचमार्क के लिए।

ऑप्टिमाइज़र में हर समय सुधार किया जा रहा है। MySQL के एक संस्करण में कमी को बाद के संस्करण में सुधारा जा सकता है। तो यह विभिन्न संस्करणों पर आपके प्रश्नों का परीक्षण करने लायक है।

UNION ALL . का उपयोग करना भी फायदेमंद है बस UNION . के बजाय . दोनों प्रश्न परिणामों को संग्रहीत करने के लिए एक अस्थायी तालिका का उपयोग करते हैं, लेकिन अंतर यह है कि UNION लागू होता है DISTINCT परिणाम सेट के लिए, जो एक अतिरिक्त गैर-अनुक्रमित सॉर्ट करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON स्ट्रिंग में MYSQL REGEXP खोज

  2. सोलर डेटा आयात हैंडलर का उपयोग करके mySQL से सोलर में बहु-मूल्यवान फ़ील्ड आयात करना

  3. MySQL समय क्षेत्र

  4. मिन () - MySQL में एक कॉलम में न्यूनतम मान खोजें

  5. एक एकल MySQL तैयार कथन w/PHP और PDO में एक सरणी कैसे सम्मिलित करें?