首頁  >  文章  >  資料庫  >  MySQL的索引類型及特性是什麼

MySQL的索引類型及特性是什麼

王林
王林轉載
2023-05-27 15:22:061768瀏覽

註:這裡主要針對的是InnoDB儲存引擎的B Tree索引資料結構

下面主要介紹五種索引類型以及各自的特點和不同。

1.B-Tree索引

因為儲存引擎不⽤進⾏全表掃描來獲取數據,直接從索引的根節點開始搜索,從⽽能加快存取資料的速度。

優點:

B-Tree對索引是順序組織儲存的,很適合用來尋找範圍資料適⽤於全鍵值、鍵值範圍或鍵前綴查找(根據最左前綴查找)

限制:

對於聯合索引來說,如果不是從最左列開始查找,則⽆法使⽤索引;不能跳過索引中的

2.B Tree索引

是B-Tree索引的變種,現在主流的儲存引擎都不⽤單純的B-Tree, ⽽是其變種B Tree或T-Tree等等

和B-Tree的差別:

和B-Tree最主要的差別就是B Tree的內節點不儲存data,只儲存key,葉⼦節點不儲存指標

3.Hash索引

基於Hash表實現,只有Memory儲存引擎明確

優點:

⽀持哈希索引

適合等值查詢,如= 、 in() 、 <=> 

弊端:

不⽀持範圍查詢

因為不是按照索引值順序儲存的,就不能像B Tree索引⼀樣利⽤索引完成排序,Hash索引在查詢等值時⾮常快,因為Hash索引總是索引的所有列的全部內容,所以不⽀持部分索引列的匹配查找。

如果有⼤量重複鍵值得情況下,哈希索引的效率會很低,因為有哈希碰撞問題,程式設計師可以在B Tree索引的基礎上建立⾃適應Hash索引

4.全文索引

MyISAM和InnoDB都⽀持全⽂索引,有三種模式:⾃然語⾔模式,布林模式和查詢擴充模式

5.R-Tree索引

MyISAM⽀持R-Tree索引,這個和全⽂索引基本上不問

以上是MySQL的索引類型及特性是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除