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

शामिल होने का उपयोग करके इस MySQL क्वेरी को कैसे सुधारें?

आपके पास left join venues , लेकिन आपके पास where . में शर्तें हैं शामिल हुए venues . पर क्लॉज पंक्ति, इसलिए केवल सम्मिलित पंक्तियों को वापस किया जाएगा। हालांकि, यह एक साइड इश्यू है - पढ़ें कि आपको शामिल होने की आवश्यकता क्यों नहीं है।

अगला, यदि शहर vancouver है , भी . की कोई आवश्यकता नहीं है देश या राज्य के लिए परीक्षण।

अंत में, यदि आप "वैंकूवर में भविष्य के कितने कार्यक्रम हैं" खोजने का प्रयास कर रहे हैं, तो आपको शामिल होने की आवश्यकता नहीं है, क्योंकि स्थल आईडी एक स्थिरांक है!

इसे आजमाएं:

select count(*) as event_count
from events
where venueid = (select id from venues where city = 'vancouver')
and startdate > curdate() 
and te_id != 0

Mysql इंडेक्स का उपयोग venueid . पर करेगा आपको एक संकेत का उपयोग किए बिना। अगर ऐसा नहीं होता है, तो इसे निष्पादित करें:

analyze events

जो अनुक्रमित कॉलम में डेटा वितरण के आंकड़ों को अपडेट करेगा। ध्यान दें कि यदि आपके बहुत से ईवेंट वैंकूवर में हैं, तो यह नहीं के लिए अधिक कुशल है एक अनुक्रमणिका का उपयोग करें (क्योंकि अधिकांश पंक्तियों को वैसे भी एक्सेस करना होगा)।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqldump:निष्पादित नहीं किया जा सका। info_schema में अज्ञात तालिका 'column_statistics'

  2. 193:% 1 एक नए रेल एप्लिकेशन के साथ मान्य Win32 एप्लिकेशन बग नहीं है

  3. विजुअल स्टूडियो सी # के साथ MySQL कनेक्ट करना

  4. MySQL में LOAD_FILE () फ़ंक्शन कैसे काम करता है

  5. शीर्ष-स्तरीय पैरेंट MySQL को पुनः प्राप्त करें