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

mysql में कीसेट पेजिनेशन के लिए अनुक्रमण

मुझे पहले भी इस समस्या का सामना करना पड़ा है। यहाँ इसका मेरा विश्लेषण है।

  • यह MySQL 5.7 और 8.0 में होता है, लेकिन जाहिर तौर पर पुराने संस्करणों में नहीं और मारियाडीबी में नहीं।

  • मैं जिस "समाधान" को पसंद करता हूं, वह है इंडेक्स को इस प्रकार बदलना:

       INDEX(company_id)      -- DROP this
       INDEX(company_id, id)  -- ADD this
    

हालांकि 2-स्तंभ अनुक्रमणिका सैद्धांतिक रूप से InnoDB के लिए एक-स्तंभ अनुक्रमणिका के समान है (id मानते हुए) PK है), ऐसा लगता है कि ऑप्टिमाइज़र इस तथ्य को अनदेखा कर देता है कुछ स्थितियों में

साथ ही, मैं स्पष्ट रूप से पीके जोड़ना पसंद करता हूं जब मुझे कोई आवश्यकता दिखाई देती है . यह स्कीमा के भावी पाठकों (स्वयं सहित) को संकेत देता है कि पीके को जोड़ने से कुछ क्वेरी को लाभ होता है।

मुझे अभी तक ऐसा कोई मामला नहीं मिला है, जहां "इंडेक्स मर्ज इंटरसेक्ट" एक समान कंपोजिट इंडेक्स की तुलना में तेज हो।

मुझे डर है कि भविष्य में डेटा वितरण बदल जाएगा और मेरा "संकेत" चीजों को और खराब कर देगा, इस डर के लिए सूचकांक "संकेत" का उपयोग करना पसंद नहीं है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. GROUP_CONCAT अल्पविराम विभाजक - MySQL

  2. Django mysqlclient स्थापित करें

  3. django . में mysql में माइग्रेट करना

  4. डेटाबेस में MD5 को स्टोर करते समय BINARY(16) और CHAR(32) के बीच अंतर

  5. अमान्य एक्सएमएल प्रारूप - इससे कैसे बचें