1. 程式人生 > 實用技巧 >資料庫常見知識點總結-最左字首匹配原則、EXPLAIN 命令詳解

資料庫常見知識點總結-最左字首匹配原則、EXPLAIN 命令詳解

參考:

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子句也遵循此規則。