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

मैसकल इंडेक्स कॉन्फ़िगरेशन

अपडेट करें:

समस्या के अधिक विस्तृत विश्लेषण के लिए मेरे ब्लॉग में यह लेख देखें:

जब आप LIMIT 150000, 10 . जैसा कुछ जारी करते हैं , इसका मतलब है कि MySQL इन 150,000 को पार करना चाहिए रिकॉर्ड करें और अगला 10 ढूंढें ।

MySQL में इंडेक्स को ट्रैवर्स करना धीमा है ।

साथ ही, MySQL लेट रो लुकअप करने में सक्षम नहीं है।

सैद्धांतिक रूप से, यदि आप ORDER BY id LIMIT 100000, 10 द्वारा ऑर्डर करते हैं , यह 100000 . से मानों को खोजने के लिए अनुक्रमणिका का उपयोग करने के लिए पर्याप्त है करने के लिए 100010 , तो केवल 10 देखें पंक्तियाँ जो उस अनुक्रमणिका को संतुष्ट करती हैं और उन्हें वापस करती हैं।

MySQL . को छोड़कर सभी प्रमुख सिस्टम इसके बारे में जानते हैं और पंक्तियों को तभी देखें जब मान वास्तव में लौटाए जाने हों।

MySQL , हालांकि, प्रत्येक पंक्ति को देखता है।

अपनी क्वेरी को इस तरह फिर से लिखने का प्रयास करें:

SELECT  news.*
FROM    (
        SELECT  id
        FROM    news
        WHERE   cat_id='4'
        ORDER BY
                id DESC
        LIMIT 150000, 10
        ) o
JOIN    news
ON      news.id = o.id



  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. आदेश sql ट्री पदानुक्रम

  3. Mysql में क्लॉज में एक चुनिंदा स्टेटमेंट में मानों के क्रम के आधार पर छाँटें

  4. प्रक्रियाओं में SQLEXCEPTION संदेश प्राप्त करना MySQL 5.5.x

  5. एकाधिक अद्वितीय फ़ील्ड के लिए ON DUPLICATE KEY UPDATE का MySQL व्यवहार