mysql如何添加多個(gè)btree索引

目前大部分數(shù)據(jù)庫系統(tǒng)及文件系統(tǒng)都采用b-tree或其變種b+tree作為索引結(jié)構(gòu)。

1、B+樹是一個(gè)平衡的多叉樹,從根節(jié)點(diǎn)到每個(gè)葉子節(jié)點(diǎn)的高度值不超過1,而且同層級(jí)的節(jié)點(diǎn)間有指針相互鏈接

2、在B+樹上的常規(guī)檢索,從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的搜索效率基本相當(dāng),不會(huì)出現(xiàn)大幅波動(dòng),而且基于索引的順序掃描時(shí),也可以利用雙向指針快速左右移動(dòng),效率非常高。

mysql如何添加多個(gè)btree索引

mysql中,索引可以有效的提高查詢效率,但在實(shí)際項(xiàng)目中有時(shí)候即使在where條件都加上索引,也不一定能夠使用到索引

舉個(gè)栗子:where id=3 and price>100;//查詢id為3,100元以上的商品(id,price 分別為添加索引)

?誤區(qū):只能用上id或price其中一個(gè),因?yàn)槭仟?dú)立的索引,同時(shí)只能用上一個(gè)。

聯(lián)合索引:在多列同時(shí)創(chuàng)建索引后,需要滿足左前綴原則,才用到索引

?以index(a,b,c)為例。(注意和順序有關(guān))

語句 | 是否使用索引

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 否因?yàn)樘^a

where a=3 and c =4 a用到索引,c不能

where a=3 and b like ‘hello%’ a用到了,b部分用到

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊12 分享