今天在調試一個BUG的時候,無心間發現 explain 發現了 index range;php
以前對於索引的理解是,單個索引每次查詢只能用一個索引。因而趕忙查一下,果真存在這個優化器在適當的時候會選擇使用兩個索引而後取交集,並集。html
又一想那效率和符合索引有什麼區別呢? 實驗發現仍是符合索引速度快,並且快很多。看來出現index range 不是最優的索引。mysql
效率對比:sql
符合索引(user_id,type)優化
單個索引user_id,type 優化器自動選擇兩個索引交集調試
總結:符合索引仍是第一選擇。code
附上兩篇關於index range 講解:htm
http://dev.mysql.com/doc/refman/5.7/en/index-merge-optimization.html 索引
http://www.orczhou.com/index.php/2013/01/mysql-source-code-query-optimization-index-merge/ get