db2 删除索引_MYSQL进阶——索引
索引模型
hash索引
hash索引主要適用于等值查詢的場景,排序,模糊搜索等場景并不適用
有序數組
有序數組可用于非等值查詢,排序等場景,但是由于寫數據時需要對數組中的元素進行位移,所以一般用于靜態數據的場景
二叉樹
二叉樹模型能夠很好的解決寫操作多時索引的維護,并且支持模糊查詢,排序等操作
常用索引模型
MYSQL中最常用的存儲引擎是InnoDB,InnoDB中常用的索引模型是B+樹(二叉樹的一種,實際上是n叉樹)。
使用n叉樹的好處
樹結構進行搜索的時候,是一層一層進行搜索的,也就是說樹的高度越高,搜索的次數越多,如果數據量比較大,二叉樹的話高度會很高,所以采用n叉樹
B+樹原理
n叉樹
從圖中可以看出,B+樹的分叉上存的是一組范圍的數據,且可以有多個節點,例如現在插入一條數據4,此時4的索引應該是在3和5之間的,這時有兩種情況:
對于上面說的第二種情況,就是頁分裂,就是將原本放在一頁的數據分裂成兩頁,此時的空間利用率變低了(因為有一些空位沒有使用)。
有頁分裂就有頁合并,當我們做刪除操作的時候,如果兩頁的數據都比較少,就可能會發生頁合并。
索引類型
聚簇索引和二級索引(InnoDB)
聚簇索引即主鍵索引,二級索引即非主鍵索引,兩個索引的區別可以用下面這個圖來對比一下:
主鍵索引和非主鍵索引
圖中ID是主鍵索引,k為非主鍵索引,從圖中可以看出,它們的區別主要在葉子節點上,主鍵索引的葉子節點存儲的是真正的數據行,但是非主鍵索引的葉子節點存儲的是主鍵,在查詢上它們的一個很大的區別是:
覆蓋索引
非主鍵索引會多一次回表查詢,但是在一些場景下是可以避免回表的,就比如說查詢的字段和條件字段都在索引上,那么就不需要進行回表,這種場景下對應的索引叫覆蓋索引
索引原則
左側原則
例如我們創建了一個聯合索引(a,b,c),以后我們只使用a條件的時候或者使用a,b條件的時候也是能夠使用該索引的
索引下推
索引下推是MYSQL5.6版本后的一個優化,例如現在有聯合索引(a,b),有一個查詢sql:
select * from T where a like 'pre%' and b = 'field';總結
以上是生活随笔為你收集整理的db2 删除索引_MYSQL进阶——索引的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序中app.js文件、组件、ap
- 下一篇: 鸿蒙系统下载 绿色,PGWARE PcM