दुर्भाग्य से mysql (और शायद कोई भी dbms) jobs.status != 331 and ack = 0
जैसे भावों को अनुकूलित नहीं कर सकता क्योंकि बी-ट्री एक ऐसी संरचना नहीं है जो किसी भी चीज को तेजी से खोजने की अनुमति देती है जो कि एक स्थिर मूल्य के बराबर नहीं है। इस प्रकार आपको हमेशा एक पूर्ण स्कैन प्राप्त होगा।
अगर कुछ बेहतर स्थिति होती जैसे jobs.status = 331 and ack = 0
(इस तथ्य पर ध्यान दें कि मैंने !=
. बदल दिया है करने के लिए =
) तो इस क्वेरी को तेज़ करने की सलाह दी जाएगी:
- क्वेरी को 2 में विभाजित करें,
UNION ALL
. से जुड़ें - एक क्वेरी में बदलें
LEFT JOIN
करने के लिएINNER JOIN
(जिसका अर्थ है किwq.info is not NULL
)