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

MySQL क्वेरी में एकाधिक कॉलम इंडेक्स को समझना

अच्छा सवाल।

इंडेक्स बाएं से दाएं काम करते हैं, इसलिए आपका WHERE मानदंड सूचकांक का उपयोग करेंगे। सॉर्ट भी इस मामले में सूचकांक का उपयोग करेगा (नीचे निष्पादन योजना)।

मैनुअल से :

अगर आपके पास सिंगल कॉलम इंडेक्स था (accountid ), इसके बजाय एक फाइलसॉर्ट का उपयोग किया जाएगा। इसलिए, आपकी क्वेरी उस अनुक्रमणिका से लाभान्वित होती है।

दो कॉलम इंडेक्स

create table t1 (
  accountid tinyint,
  logindate date);

create index idx on t1 (accountid, logindate);

insert into t1 values (1, '2012-09-05'), (2, '2012-09-09'), (3, '2012-09-04'), 
    (1, '2012-09-01'), (1, '2012-09-26'), (2, '2012-05-16'), 
    (1, '2012-09-01'), (3, '2012-10-19'), (1, '2012-03-01')

निष्पादन योजना

ID  SELECT_TYPE  TABLE  TYPE  POSSIBLE_KEYS  KEY  KEY_LEN  REF   ROWS  FILTERED  EXTRA
1   SIMPLE       t1     ref   idx            idx  2        const 5     100       Using where; Using index

एकल स्तंभ अनुक्रमणिका

create table t1 (
  accountid tinyint,
  logindate date);

create index idx on t1 (accountid);

insert into t1 values (1, '2012-09-05'), (2, '2012-09-09'), (3, '2012-09-04'), 
    (1, '2012-09-01'), (1, '2012-09-26'), (2, '2012-05-16'), (1, '2012-09-01'), 
    (3, '2012-10-19'), (1, '2012-03-01')

निष्पादन योजना

ID  SELECT_TYPE  TABLE  TYPE   POSSIBLE_KEYS  KEY  KEY_LEN  REF   ROWS  FILTERED  EXTRA
1   SIMPLE       t1     range  idx            idx  2              5     100       Using where; Using filesort



  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 के लिए PDO का lastInsertId एक दौड़ की स्थिति है?

  3. क्या मैं जो कुछ सम्मिलित करना चाहता हूं उसे अपडेट करने के लिए ऑन डुप्लीकेट कुंजी का उपयोग करने का कोई तरीका है?

  4. SQL अद्यतन और प्रतिस्थापन बदलें

  5. टॉमकैट कंटेनर पर एक वेब-ऐप को हाइबरनेट के माध्यम से mysql कंटेनर से कनेक्ट करें