ठीक है, मैंने प्रति टेबल 30,000+ रिकॉर्ड पर इसका परीक्षण किया है और यह बहुत जल्दी चलता है।
जैसा कि यह वर्तमान में खड़ा है, आप वर्तमान में दो बड़े टेबल पर एक जॉइन कर रहे हैं, लेकिन यदि आप पहले प्रत्येक टेबल पर 'वैल' पर मैचों के लिए स्कैन करते हैं तो इससे आपके जॉइन सेट का आकार काफी कम हो जाएगा।
मैंने मूल रूप से इस उत्तर को उपश्रेणियों के एक सेट के रूप में पोस्ट किया था, लेकिन मुझे नहीं पता था कि MySQL नेस्टेड सबक्वायरीज़ में दर्द से धीमा है क्योंकि यह बाहर से निष्पादित होता है। हालाँकि यदि आप सबक्वायरीज़ को विचारों के रूप में परिभाषित करते हैं तो यह उन्हें अंदर से बाहर चलाता है।पी>
तो, पहले विचार बनाएं।
CREATE VIEW tbl1_iii AS (
SELECT * FROM tbl1 WHERE val='iii'
);
CREATE VIEW tbl2_iii AS (
SELECT * FROM tbl2 WHERE val='iii'
);
फिर क्वेरी चलाएँ।
SELECT tbl1_iii.id from tbl1_iii,tbl2_iii
WHERE tbl1_iii.id = tbl2_iii.id;
बिजली।