資料庫常見知識點總結-最左字首匹配原則、EXPLAIN 命令詳解
阿新 • • 發佈:2020-11-19
參考:
https://blog.csdn.net/kqqkqq123/article/details/98057744
最左字首原則
MySQL中的索引可以以一定順序引用多列,這種索引叫作聯合索引。如User表的name和city加聯合索引就是(name,city),而最左字首原則指的是,如果查詢的時候查詢條件精確匹配索引的左邊連續一列或幾列,則此列就可以被用到。如下:
select * from user where name=xx and city=xx ; //可以命中索引 select * from user where name=xx ; // 可以命中索引 select * from user where city=xx ; //無法命中索引
這裡需要注意的是,查詢的時候如果兩個條件都用上了,但是順序不同,如city= xx and name =xx
,那麼現在的查詢引擎會自動優化為匹配聯合索引的順序,這樣是能夠命中索引的。
由於最左字首原則,在建立聯合索引時,索引欄位的順序需要考慮欄位值去重之後的個數,較多的放前面。ORDER BY子句也遵循此規則。