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

mysql नॉट इन क्वेरी ऑप्टिमाइज़

NOT EXISTS का उपयोग करना

SELECT p.* 
  FROM TABLE_PRODUCT p
 WHERE p.astatus = 'APAST' 
   AND NOT EXISTS (SELECT NULL
                     FROM TABLE_USER_OWNED_AUCTION uoa
                    WHERE uoa.specific_product_id = p.specific_product_id)

LEFT JOIN/IS NULL का उपयोग करना

   SELECT p.* 
     FROM TABLE_PRODUCT p
LEFT JOIN TABLE_USER_OWNED_AUCTION uoa ON uoa.specific_product_id = p.specific_product_id
    WHERE p.astatus = 'APAST' 
      AND uoa.own_id IS NULL

स्पष्टीकरण

सबसे इष्टतम क्वेरी इस बात से निर्धारित की जा सकती है कि क्या दो तालिकाओं के बीच तुलना किए गए कॉलम NULLable हैं (IE:यदि specific_product_id के मान हैं किसी भी तालिका में NULL हो सकता है )।

परिशिष्ट

एक बार इष्टतम क्वेरी निर्धारित हो जाने के बाद, बनाने पर एक नज़र डालें इंडेक्स (संभवतः इंडेक्स को कवर करना) कम से कम के लिए:

  • specific_product_id
  • TABLE_PRODUCT.astatus


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. उप क्वेरी MySQL के रूप में संघ

  2. स्प्रिंग जेपीए (हाइबरनेट) इकाई प्रबंधक के साथ कनेक्शन पूल में कनेक्शन कब लौटाए जाते हैं?

  3. MySQL - एक क्वेरी में अलग-अलग मानों के साथ कई पंक्तियों को अपडेट करें

  4. क्या `mysqlcheck` मेरे डेटाबेस को नुकसान पहुँचाए बिना डेटाबेस समस्याओं को हल करने में मेरी मदद कर सकता है?

  5. पंक्तियों की संख्या की जाँच करने के लिए MYSQL में एकाधिक मौजूद नहीं है