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

अच्छी तरह से अनुक्रमित MySQL तालिकाओं को प्रभावी ढंग से कैसे जोड़ा जाए

ठीक है, मैंने प्रति टेबल 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;

बिजली।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Myd, .myi, .frm फ़ाइलों से MySQL डेटाबेस को कैसे पुनर्प्राप्त करें

  2. केवल SQL के साथ फाइल करने के लिए MySQL डेटाबेस से ब्लॉब निर्यात करना

  3. कोणीय 2 और MySQL अवधारणाएं

  4. लारवेल क्वेरी बिल्डर जहां नहीं है

  5. मैं PHP को अपग्रेड करने के बाद mysql_* फ़ंक्शन का उपयोग नहीं कर सकता