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

MySQL EXPLAIN:इंडेक्स का उपयोग करना बनाम इंडेक्स कंडीशन का उपयोग करना

एक उदाहरण इसे सबसे अच्छी तरह समझाता है:

SELECT Year, Make --- possibly more fields and/or from extra tables
FROM myUsedCarInventory
WHERE Make = 'Toyota' AND Year > '2006'

Assuming the Available indexes are:
  CarId
  VIN
  Make
  Make and Year

यह क्वेरी 'इंडेक्स का उपयोग' के साथ व्याख्या करेगी क्योंकि इसकी आवश्यकता नहीं है, बिल्कुल , "मेक एंड ईयर" इंडेक्स के बाद से myUsedCarInventory तालिका को "हिट" करने के लिए "कवर" इसकी आवश्यकता उस तालिका से संबंधित WHERE क्लॉज के तत्वों के संबंध में

अब, कल्पना कीजिए, हम क्वेरी को वही रखते हैं, लेकिन रंग पर एक शर्त जोड़ने के लिए

...
WHERE Make = 'Toyota' AND Year > '2006' AND Color = 'Red'

यह क्वेरी संभवतः 'इंडेक्स कंडीशन का उपयोग' ('संभावित') के साथ व्याख्या करेगी, यहां इस मामले के लिए है कि टोयोटा + वर्ष पर्याप्त चुनिंदा होने का अनुमान नहीं लगाया जाएगा, और अनुकूलक केवल तालिका को स्कैन करने का निर्णय ले सकता है)। इसका मतलब यह होगा कि MySQL FIRST होगा मेक + ईयर को हल करने के लिए इंडेक्स का उपयोग करें, और इसे तालिका में संबंधित पंक्ति को भी देखना होगा, केवल के लिए पंक्तियाँ जो Make + Year की शर्तों को पूरा करती हैं। इसे ही कभी-कभी "पुश डाउन ऑप्टिमाइज़ेशन ".



  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 तालिकाओं की भरमार कैसे व्यवस्थित कर सकता हूं?

  2. हिम तेंदुए के तहत मैकपोर्ट्स mysql5 सेटअप

  3. बहुत लगातार /opt/lampp/bin/mysql.server:264:किल:ऐसी कोई प्रक्रिया नहीं है। Xampp/उबंटू 16.04

  4. PHP या MySQL का उपयोग करके AM/PM समय को 24 घंटे के प्रारूप में परिवर्तित करना?

  5. CentOS 7 पर MySQL इंस्टाल करना