जब तक आप केवल बराबर कर रहे हैं (और ऐसा नहीं है, जिससे शॉर्ट सर्किट प्रभावित हो सकता है), बस इसे एक मान से बदलें:
EXPLAIN SELECT foo FROM bar WHERE some_column = 'foo';
चूंकि यह वास्तव में क्वेरी को निष्पादित नहीं कर रहा है, इसलिए परिणाम वास्तविक से भिन्न नहीं होने चाहिए। ऐसे कुछ मामले हैं जहां यह सच नहीं है (मैंने पहले ही LIKE का उल्लेख किया है)। यहां LIKE
. के विभिन्न मामलों का एक उदाहरण दिया गया है :
SELECT * FROM a WHERE a.foo LIKE ?
- परम 1 ==
Foo
- यदि कोई अनुक्रमणिका मौजूद है तो अनुक्रमणिका स्कैन का उपयोग कर सकते हैं। - परम 1 ==
%Foo
- एक पूर्ण तालिका स्कैन की आवश्यकता है, भले ही कोई अनुक्रमणिका मौजूद हो - परम 1 ==
Foo%
- इंडेक्स की कार्डिनैलिटी और अन्य कारकों के आधार पर इंडेक्स स्कैन का उपयोग कर सकते हैं
यदि आप शामिल हो रहे हैं, और जहां क्लॉज एक असंभव संयोजन के लिए उपज देता है (और इसलिए यह शॉर्ट सर्किट होगा)। उदाहरण के लिए:
SELECT * FROM a JOIN b ON a.id = b.id WHERE a.id = ? AND b.id = ?
यदि पहले और दूसरे पैरामीटर समान हैं, तो इसकी एक निष्पादन योजना है, और यदि वे भिन्न हैं, तो यह शॉर्ट सर्किट (और बिना किसी डेटा को प्रभावित किए 0 पंक्तियाँ लौटाएगा)...
अन्य भी हैं, लेकिन अभी मैं अपने सिर के ऊपर से उन सभी के बारे में सोच सकता हूं...