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

मैं एकाधिक जुड़ने के साथ MySQL क्वेरी को कैसे तेज कर सकता हूं

मैं निम्नलिखित का प्रयास करूंगा:

सबसे पहले, सुनिश्चित करें कि निम्न तालिकाओं और स्तंभों पर अनुक्रमणिका हैं (कोष्ठक में स्तंभों का प्रत्येक सेट एक अलग अनुक्रमणिका होना चाहिए):

table1 : (subscribe, CDate)
         (CU_id)
table2 : (O_cid)
         (O_ref)
table3 : (I_oref)
         (I_pid)
table4 : (P_id)
         (P_cat)
table5 : (C_id, store)

दूसरा, अगर उपरोक्त अनुक्रमणिका जोड़ने से आप जितना चाहें उतना सुधार नहीं कर पाए, क्वेरी को इस रूप में फिर से लिखने का प्रयास करें

SELECT DISTINCT t1.first_name, t1.last_name, t1.email FROM
  (SELECT CU_id, t1.first_name, t1.last_name, t1.email
     FROM table1
     WHERE subscribe = 1 AND
           CDate >= $startDate AND
           CDate <= $endDate) AS t1
  INNER JOIN table2 AS t2
    ON t1.CU_id = t2.O_cid   
  INNER JOIN table3 AS t3
    ON t2.O_ref = t3.I_oref   
  INNER JOIN table4 AS t4
    ON t3.I_pid = t4.P_id   
  INNER JOIN (SELECT C_id FROM table5 WHERE store = 2) AS t5
    ON t4.P_cat = t5.C_id

मैं यहां उम्मीद कर रहा हूं कि पहले उप-चयन में शामिल होने के लिए विचार की जाने वाली पंक्तियों की संख्या में काफी कमी आएगी, उम्मीद है कि बाद में जुड़ने से कम काम होगा। तालिका 5 पर दूसरे उप-चयन के पीछे तर्क के लिए।

किसी भी मामले में, इसके साथ खिलवाड़ करें। मेरा मतलब है, आखिरकार यह सिर्फ एक चयन है - आप वास्तव में इसके साथ कुछ भी चोट नहीं पहुंचा सकते हैं। प्रत्येक भिन्न क्रमपरिवर्तन द्वारा उत्पन्न योजनाओं की जाँच करें और यह पता लगाने का प्रयास करें कि प्रत्येक के बारे में क्या अच्छा या बुरा है।

साझा करें और आनंद लें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डिलीट कैस्केड पर

  2. मैं एक डेटाबेस में एक यूट्यूब एम्बेड लिंक कैसे स्टोर करूं?

  3. एक .CSV फ़ाइल से MySQL डीबी में उत्पादों की तुलना/सम्मिलित/अपडेट करने का सबसे अच्छा तरीका क्या है

  4. अनुक्रमित बूलियन कॉलम बनाम डेटाटाइम कॉलम पर क्वेरी का प्रदर्शन

  5. एकाधिक खोज स्थितियों के साथ एक MYSQL केस जब कथन कैसे लिखें?