什麼是資料庫中的索引

2021-10-08 15:17:33 字數 1138 閱讀 6081

索引是什麼?

索引要解決的問題

索引可以考慮的資料結構

1.雜湊表

2.二叉搜尋樹

.那真實的索引結構是什麼樣的?一種n叉搜尋樹 即b+樹

先認識b-樹 也就是b樹,下圖為b樹

b樹和二叉樹的差異

每個節點不是2叉是n叉,在b樹上查詢 就是乙個n分查詢,效率比2分還要快。

每個節點不是存了乙個資料 而是可能存了多個資料,每個節點存的資料的個數和該節點的度是相關的.由於每個節點存了多個資料,每個節點又有多個度所以和二叉樹相比在儲存相同個數元素情況下,b樹的高度就會比二叉樹低很多

處理範圍查詢也更容易一些

下圖為b+樹

b+樹和b樹相比優點有哪些

每一層的元素之間都連線到一起,不需要進行額外的中序遍歷,處理範圍查詢就更高效

資料只在葉子節點上儲存,非葉子節點不再儲存資料 只儲存一些輔助查詢的邊界資訊.因為資料都在葉子節點中所以查詢任何一條記錄的速度都是比較平均的,不會出現效率差異大的情況

葉子節點存在磁碟上,非葉子放到記憶體中,減少讀磁碟的次數,使得查詢效率變高

注意:加在主鍵的索引和其他列上的索引是不同的

索引的應用場景:

索引起到的效果就是:加快查詢效率,減慢插入,修改和刪除效率

索引會占用額外的空間(本質上是使用空間來換時間)

(1)對於插入、刪除資料頻率高的表,不適用索引

(2)對於某列修改頻率高的,該列不適用索引

(3)通過某列或某幾列的條件查詢頻率高的,可以對這些列建立索引

索引的使用

什麼是mysql的索引 什麼是資料庫索引

大家平時在開發過程中都避免不了使用資料庫索引,那麼你了解資料庫索引麼,接下來呢,我就簡單講一下什麼是資料庫索引。一 資料索引是幹什麼用的呢?資料庫索引其實就是為了使查詢資料效率快。二 資料庫索引有哪些呢?聚集索引 主鍵索引 在資料庫裡面,所有行數都會按照主鍵索引進行排序。非聚集索引 就是給普通字段加...

什麼是資料庫索引

假設我們有乙個資料庫表 employee,這個表有三個字段 列 分別是 employee name employee age 和employee address。假設表employee 有上千行資料。現在假設我們要從這個表中查詢出所有名字是 jesus 的雇員資訊。我們決定使用下面的查詢語句 資料庫...

什麼是資料庫索引,索引有什麼作用

資料庫索引是為了增加查詢速度而對表字段附加的一種標識。見過很多人機械的理解索引的概念,認為增加索引只有好處沒有壞處。這裡想把之前的索引學習筆記總結一下 首先明白為什麼索引會增加速度,db在執行一條sql語句的時候,預設的方式是根據搜尋條件進行全表掃瞄,遇到匹配條件的就加入搜尋結果集合。如果我們對某一...