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

mysql गिनती क्वेरी अनुकूलित करें

यदि MySQL को 11M पंक्तियों को गिनना है, तो वास्तव में एक साधारण गिनती को तेज करने का कोई तरीका नहीं है। कम से कम इसे उप 1 सेकंड की गति तक नहीं लाने के लिए। आपको पुनर्विचार करना चाहिए कि आप अपनी गिनती कैसे करते हैं। कुछ विचार:

  1. तालिका में एक ऑटो इंक्रीमेंट फ़ील्ड जोड़ें। ऐसा लगता है कि आप तालिका से नहीं हटाएंगे, इसलिए आप रिकॉर्ड गणना खोजने के लिए सरल गणित का उपयोग कर सकते हैं। प्रारंभिक पहले की तारीख के लिए न्यूनतम ऑटो वेतन वृद्धि संख्या और बाद की तारीख के लिए अधिकतम का चयन करें और रिकॉर्ड गणना प्राप्त करने के लिए एक को दूसरे से घटाएं। उदाहरण के लिए:

    SELECT min(incr_id) min_id FROM record_updates WHERE date_updated BETWEEN '2009-10-11 15:33:22' AND '2009-10-12 23:59:59';
    SELECT max(incr_id) max_id FROM record_updates WHERE date_updated > DATE_SUB(NOW(), INTERVAL 2 DAY);`
    
  2. प्रत्येक दिन के लिए रिकॉर्ड संख्या को सारांशित करते हुए एक अन्य तालिका बनाएं। फिर आप उस तालिका को कुल रिकॉर्ड के लिए क्वेरी कर सकते हैं। प्रत्येक वर्ष के लिए केवल 365 रिकॉर्ड होंगे। यदि आपको अधिक बारीक समय के लिए नीचे उतरने की आवश्यकता है, तो पूरे दिनों के लिए सारांश तालिका और प्रारंभ और समाप्ति दिनों के लिए केवल रिकॉर्ड गणना के लिए वर्तमान तालिका को क्वेरी करें। फिर उन सभी को एक साथ जोड़ें।

यदि डेटा नहीं बदल रहा है, जो ऐसा प्रतीत नहीं होता है, तो सारांश तालिकाओं को बनाए रखना और अपडेट करना आसान होगा। वे चीजों को काफी गति देंगे।



  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. MySQL में संयुक्त पदों की रैंकिंग

  3. MySQL दिनांक स्वरूप DD/MM/YYYY क्वेरी का चयन करें?

  4. Mysql मुद्दा WHERE क्लॉज के साथ

  5. MySQL - CONCAT - क्या एक स्ट्रिंग को सम्मिलित करने और इसे एक चर के रूप में उपयोग करने का कोई तरीका है?