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

मैं MySQL में पैरामीटर के साथ एक क्वेरी की व्याख्या कैसे करूं

जब तक आप केवल बराबर कर रहे हैं (और ऐसा नहीं है, जिससे शॉर्ट सर्किट प्रभावित हो सकता है), बस इसे एक मान से बदलें:

EXPLAIN SELECT foo FROM bar WHERE some_column = 'foo';

चूंकि यह वास्तव में क्वेरी को निष्पादित नहीं कर रहा है, इसलिए परिणाम वास्तविक से भिन्न नहीं होने चाहिए। ऐसे कुछ मामले हैं जहां यह सच नहीं है (मैंने पहले ही LIKE का उल्लेख किया है)। यहां LIKE . के विभिन्न मामलों का एक उदाहरण दिया गया है :

SELECT * FROM a WHERE a.foo LIKE ?
  1. परम 1 ==Foo - यदि कोई अनुक्रमणिका मौजूद है तो अनुक्रमणिका स्कैन का उपयोग कर सकते हैं।
  2. परम 1 ==%Foo - एक पूर्ण तालिका स्कैन की आवश्यकता है, भले ही कोई अनुक्रमणिका मौजूद हो
  3. परम 1 ==Foo% - इंडेक्स की कार्डिनैलिटी और अन्य कारकों के आधार पर इंडेक्स स्कैन का उपयोग कर सकते हैं

यदि आप शामिल हो रहे हैं, और जहां क्लॉज एक असंभव संयोजन के लिए उपज देता है (और इसलिए यह शॉर्ट सर्किट होगा)। उदाहरण के लिए:

SELECT * FROM a JOIN b ON a.id = b.id WHERE a.id = ? AND b.id = ?

यदि पहले और दूसरे पैरामीटर समान हैं, तो इसकी एक निष्पादन योजना है, और यदि वे भिन्न हैं, तो यह शॉर्ट सर्किट (और बिना किसी डेटा को प्रभावित किए 0 पंक्तियाँ लौटाएगा)...

अन्य भी हैं, लेकिन अभी मैं अपने सिर के ऊपर से उन सभी के बारे में सोच सकता हूं...



  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. MySQL में टेबल दिखाएं

  3. Mysql_fetch_array और mysql_fetch_row के बीच अंतर?

  4. MySQL, X के अंतिम घंटों के भीतर सभी परिणाम लौटाएं

  5. mysql IP पतों का रिवर्स रिज़ॉल्यूशन कैसे करता है?