1. 程式人生 > >對mysql使用索引的誤解 – 小松部落格

對mysql使用索引的誤解 – 小松部落格

主要是在驗證只使用一個索引的時候發現,key中顯示了兩個索引欄位,type中顯示index_merge
如圖

mysql explain

如果按照之前的理解只使用個索引,那就有問題了,那為什麼有人會說只使用一個索引

答案在這裡版本問題

MySQL5.0之前,一個表一次只能使用一個索引,無法同時使用多個索引分別進行條件掃描,但是從5.1開始,引入了 index merge 優化技術,對同一個表可以使用多個索引分別進行條件掃描

不能在相信百度裡的資料了,查官方文件
官方文件:  http://dev.mysql.com/doc/refman/5.7/en/index-merge-optimization.html

The Index Merge method is used to retrieve rows with several range scans and to merge their results into one. The merge can produce unions, intersections, or unions-of-intersections of its underlying scans. This access method merges index scans from a single table; it does not merge scans across multiple tables.

索引合併方法用於與幾個範圍掃描檢索行和他們的結果合併為一個。合併分為union, intersection, 以及它們的組合(先內部intersect然後在外面union)。這種訪問方式合併來自單個表索引掃描;它不合並跨多個表掃描。

In EXPLAIN output, the Index Merge method appears as index_merge in the type column. In this case, the key column contains a list of indexes used, and key_len contains a list of the longest key parts for those indexes.

在EXPLAIN輸出,索引合併方法出現在型別列index_merge。在這種情況下,鍵列包含用於索引的列表,並且key_len包含這些索引的最長鍵部件的列表

說的夠明白了
參考: http://www.cnblogs.com/digdeep/archive/2015/11/18/4975977.html

QQ交流群:136351212(滿) 455721967

如無特別說明,本站文章皆為原創,若要轉載,務必請註明以下原文資訊:
轉載保留版權:小松部落格» 對mysql使用索引的誤解
本文連結地址:https://www.phps