本博客是用來記錄本身學習的過程函數
2.Hash 哈希學習
哈希索引能以O(1)時間進行查找,可是沒有了有序性:對象
沒法用於排序與分組 只支持精確查找,blog
沒法用於部分查找和範圍查找 InnoDB儲存引擎有一個特殊的功能叫"自適應哈希索引",當某個索引值被使用的很是頻繁時,會在B+ Tree索引之上在建立一個哈希索引,這個就讓B+Tree索引具備哈希索引的一些優勢,例如快速的哈希查找。排序
3.B Tree索引
B+Tree MYSQL 默認的索引類型 是大多數MySQL儲存引擎的默認索引類型。文檔
由於再也不須要進行全表掃描,只須要對樹進行搜索便可,因此查找速度快不少。博客
除了用於查找,還能夠用於排序和分組 能夠指定多個列做爲索引列,多個索引列共同組成鍵 使用於全鍵值,鍵值範圍和鍵前綴查找。其中鍵前綴查找只適用於左前綴查找。select
若是不是按照索引列的順序查找,則沒法使用索引 InnoDB的B+ Tree索引分爲主索引和輔助索引,主索引的葉子節點 的數據域記錄着完整的數據記錄。這種索引被稱爲彙集索引。由於沒法把數據行存放在兩個不一樣的地方。因此一個表只能有一個。搜索
輔助索引的葉子節點數據域記錄着主鍵值,當使用輔助索引查找時,先查找主鍵值再進入主索引進行查找
4.R-Tree 空間數據索引
MyISAM儲存引擎支持空間數據索引(R-Tree),能夠用於地理數據存儲,空間數據索引會從全部維度來索引數據,能夠有效地使用任意維度來進行組合查詢。必須使用GIS相關函數來維護數據
InnoDB和MyISAM b+tree索引區別
1.MyISAM b+tree 子節點使用的是存儲對象的地址(非彙集索引),InnoDB子節點儲存的是數據