目前大部分資料庫系統及檔案系統都採用B-Tree或其變種B Tree作為索引結構。
1、B 樹是一個平衡的多叉樹,從根節點到每個葉子節點的高度值不超過1,而且同層級的節點間有指標相互連結
2 、在B 樹上的常規檢索,從根節點到葉子節點的搜尋效率基本上相當,不會出現大幅波動,而且基於索引的順序掃描時,也可以利用雙向指標快速左右移動,效率非常高。
在mysql中,索引可以有效的提高查詢效率,但在實際專案中有時候即使在where條件都加上索引,也不一定能夠使用到索引
舉栗子:where id=3 and price>100;//查詢id為3,100元以上的商品(id,price 分別為新增索引)
誤解:只能用上id或price其中一個,因為是獨立的索引,同時只能用上一個。
聯合索引:在多列同時建立索引後,需要滿足左前綴原則,才用到索引
以index(a,b,c)為例。 (注意和順序有關)
語句| 是否使用索引
#where a=3 是,只使用了a列
where a=3 and =5 是,使用了ab列
where a=3 and b=4 and c=5 是,使用了abc
where b=3 or c=4 否因為跳過a
where a=3 and c =4 a用到索引,c不能
where a=3 and b like 'hello%' a用到了,b部分用到
以上是mysql如何新增多個btree索引的詳細內容。更多資訊請關注PHP中文網其他相關文章!