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

MySQL- परिकलित कॉलम पर ऑर्डर करते समय प्रदर्शन

असल में आप उस क्वेरी को ऑप्टिमाइज़ नहीं कर सकते।

आप परिकलित मान का उपयोग करके परिणाम को सॉर्ट कर रहे हैं, इसलिए आप किसी अनुक्रमणिका का उपयोग नहीं कर सकते हैं। अगर आप explain . का इस्तेमाल करते हैं आप देख सकते हैं कि आपकी क्वेरी को कैसे निष्पादित किया जा रहा है, और using temporary extra . में मौजूद रहेगा कॉलम, जिसका अर्थ है कि आपकी क्वेरी का सारा डेटा एक अस्थायी टेबल पर संग्रहीत किया जा रहा है जिसमें ऑर्डरिंग की जाती है।

इससे कोई फर्क नहीं पड़ता कि आप केवल क्वेरी में पहले 50 मैच चाहते हैं, इसे पहले सभी डेटा प्राप्त करना है, इसे एक अस्थायी तालिका में डंप करना है, उस तालिका में परिणाम को सॉर्ट करना है और फिर आपको पहले 50 मैचों में वापस करना है।

जैसा कि आप मान सकते हैं, यह एक समय और स्मृति लेने वाला ऑपरेशन है।

तो आपके लिए सबसे अच्छा विकल्प है कि आप जितनी जल्दी हो सके सभी पंक्तियों को प्राप्त करने के लिए तालिका में एक अनुक्रमणिका रखें और फिर उन्हें php के साथ संसाधित करें। आपको आवश्यक डेटा प्राप्त करने के लिए।

वैसे, MySQL ऑप्टिमाइज़ेशन गाइड पर एक नज़र डालें। ।



  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. MySQL पोर्ट एक्सेस को कैसे प्रतिबंधित करें

  3. ActiveRecord/रेल बनाना वास्तविक mysql TIMESTAMP कॉलम का उपयोग करता है

  4. विभिन्न पोर्ट पर डॉकर mysql

  5. MYSQL सम्मिलित करें जहाँ PDO के साथ मौजूद नहीं है