您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)mysql中B+Tree索引的作用是什么,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
1、概念
B+Tree是在B-Tree基礎(chǔ)上的一種優(yōu)化,使其更適合實(shí)現(xiàn)外存儲(chǔ)索引結(jié)構(gòu)。在B+Tree中,所有數(shù)據(jù)記錄節(jié)點(diǎn)都是按照鍵值大小順序存放在同一層的葉子節(jié)點(diǎn)上,而非葉子節(jié)點(diǎn)上只存儲(chǔ)key值信息,這樣可以大大加大每個(gè)節(jié)點(diǎn)存儲(chǔ)的key值數(shù)量,降低B+Tree的高度。
2、與B-Tree區(qū)別
B+的搜索與B-樹也基本相同,區(qū)別是B+樹只有達(dá)到葉子結(jié)點(diǎn)才命中(B-樹可以在非葉子結(jié)點(diǎn)命中)
(1)所有關(guān)鍵字都出現(xiàn)在葉子結(jié)點(diǎn)的鏈表中(稠密索引),且鏈表中的關(guān)鍵字恰好是有序的;( 只有根節(jié)點(diǎn)存儲(chǔ)關(guān)鍵字最后樹的末梢才有值 )
(2)非葉子結(jié)點(diǎn)相當(dāng)于是葉子結(jié)點(diǎn)的索引(稀疏索引),葉子結(jié)點(diǎn)相當(dāng)于是存儲(chǔ)(關(guān)鍵字)數(shù)據(jù)的數(shù)據(jù)層。(非根節(jié)點(diǎn),存儲(chǔ)的其實(shí)是指向根節(jié)點(diǎn)的索引 )
(3) 因?yàn)榍皟牲c(diǎn),所以 不可能在非葉子結(jié)點(diǎn)存數(shù)據(jù)。 (區(qū)別B-的第三條)
(4)根節(jié)點(diǎn)橫向也有鏈指針(方便快速順藤摸瓜嘛,沒這個(gè)指針,就算下一個(gè)取的值是挨著的鄰居,也得跑個(gè)圈才能拿到)
3、使用說明
B+ Tree 索引是大多數(shù) MySQL 存儲(chǔ)引擎的默認(rèn)索引類型。
因?yàn)椴辉傩枰M(jìn)行全表掃描,只需要對(duì)樹進(jìn)行搜索即可,所以查找速度快很多。
因?yàn)?B+ Tree 的有序性,所以除了用于查找,還可以用于排序和分組。
可以指定多個(gè)列作為索引列,多個(gè)索引列共同組成鍵。
適用于全鍵值、鍵值范圍和鍵前綴查找,其中鍵前綴查找只適用于最左前綴查找。如果不是按照索引列的順序進(jìn)行查找,則無法使用索引。
以上就是mysql中B+Tree索引的作用是什么,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。