《第四講 深入淺出索引上》-讀書筆記

索引類型

哈希表,有序表,搜索樹

哈希表:mongodb,redis

有序表:有序數組索引只適用於靜態存儲引擎

搜索樹:innodbs等數據引擎

innodbs索引類型

主鍵索引,普通索引

主鍵索引:節點值爲主鍵,葉子節點裏存儲的是整行數據。所以主鍵索引在innodbs也稱爲聚簇索引。所以一個表就是一個主鍵b+樹。

普通索引:節點存儲key-value的形式,key是普通索引字段值,value是主鍵。因此也被稱爲二級索引。普通索引查到主鍵後,會再進入主鍵樹再查一次,這個過程叫做回表。因此要儘量使用主鍵來做查詢。

索引維護

插入新數據:根據b+樹算法,子節點的key都小於父節點,並且進行從小到大的排序,如果插入一個新數據的索引值在在頁的中間,那麼需要挪動該值後的節點。這樣會導致插入性能變差。所以如果使用自增id,那麼每條新數據都是直接在頁後追加節點。

頁分裂:當一頁數據放不下時,就會申請新頁,然後挪一部分數據過去,這個過程叫頁分裂。如果刪除了一部分數據,引擎判斷頁的使用率下降,將會合並頁,可以認爲是分裂過程的逆過程。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章