【數據庫】索引及索引底層實現實現

數據庫索引:

索引是依賴數據庫建立的,作用是,用來提高表中數據的查詢速度,將它比作一本書的目錄,使用它可以提高數據庫的查詢速度

目的就是加快表中的查找和排序。簡單來說索引就是數據結構。

什麼情況下會用到索引:只有經常查詢某字段中的數據時,才需要在表的字段上建立索引

索引的類型:普通索引、唯一索引、聚焦索引、主鍵索引、全文索引

數據庫索引底層實現:

數據庫的底層索引是用B樹和B+樹實現的

爲什麼使用B樹和B+樹,不用紅黑樹?

紅黑樹等數據結構也可以用來實現索引,但是文件系統以及數據庫普遍採用B-Tree/B+Tree作爲索引結構。

因爲:索引本身也很大,索引往往是以索引文件的形式存儲在磁盤上,故,索引查找的過程就會產生磁盤的I/O操作,相比於內存存取,I/O存取消耗要高几個數量級,所以索引的優劣最重要的指標就是在查找過程中的磁盤I/O存取次數

B-Tree/B+Tree的性能分析:

    一般使用磁盤I/O次數評價索引結構的優劣。B樹將一個節點的大小設爲一個頁,每次新建節點時,直接申請一個頁的空間,這樣就保證一個節點物理上也存儲在一個頁裏,計算機存儲分配是按頁對齊的,就實現了一個node只需要磁盤訪問一次,我們可以獲得最大數量的數據.所以,B樹的深度決定了要訪問磁盤I/O的次數.而紅黑樹這種結構,h要大的多.由於邏輯上很近的節點物理上可能很遠,無法利用其局部性.

 

 

 

 

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