2011-11-16 13 views
10

में मौजूद होने पर चेक मान यदि मैं किसी विशिष्ट तालिका में किसी कॉलम में varchar मान की उपस्थिति के लिए क्वेरी करते समय गति को अधिकतम करने के बारे में जानना चाहता हूं। मुझे यह जानने की जरूरत नहीं है कि यह कहां है, या कितने घटनाएं हैं, मुझे बस true/false चाहिए। बेशक, कॉलम में एक सूचकांक है।कॉलम

अब, मैं इस है:

सबक्वेरी के रूप में एक पंक्ति है कि अपने कहां खंड को संतुष्ट करता है पाता है
SELECT exists (SELECT 1 FROM table WHERE column = <value> LIMIT 1); 
+0

जांच के लिए एक स्तंभ नाम मौजूद रहने पर, http://stackoverflow.com/a/10636439/287948 –

उत्तर

13

मौजूद है सामान्य रूप से जितनी जल्दी वापस आ जाएगी। तो मुझे लगता है कि आपकी क्वेरी उतनी तेज है जितनी आप इसे बना सकते हैं।

मुझे आश्चर्य हुआ कि LIMIT 1 हमेशा क्वेरी को बहुत तेज गति से प्रतीत होता है। मुझे इसकी उम्मीद नहीं थी। आप EXPLAIN ANALYZE के साथ प्रभाव देख सकते हैं।

EXPLAIN ANALYZE 
SELECT exists (SELECT 1 FROM table WHERE column = <value> LIMIT 1); 
+0

क्या आप मुझे बता सकते हैं कि कैसे क्वेरी आमतौर पर इस बात के लिए प्रयोग किया जाता है देखते हैं (जाँच करता है, तो अधिकतम गति के साथ मौजूद हैं) – Perlos