索引包含乙個表的乙個列的值,將這些值通過乙個資料結構儲存,是資料庫系統中乙個資料結構,
提高資料訪問速度
通過b樹或者b+樹或者雜湊表等實現,b樹和b+樹都是平衡二叉樹
b樹每個節點都儲存key和data,所有節點組成這棵樹,並且葉子節點指標為null。
b+樹只有葉子節點儲存data,葉子節點包含了這棵樹的所有鍵值,葉子節點不儲存指標。所有非終端節點看成是索引,節點中僅含有其子樹根節點最大(或最小)的關鍵字,不包含查詢的有效資訊。b+樹中所有葉子節點都是通過指標連線在一起。
b+樹更適合做索引:
1.對磁碟讀寫代價低
因為b+樹只有葉子節點儲存資料,內部節點相對b樹更小,可以將內部節點的關鍵字放在同一盤塊,這樣盤塊儲存的關鍵字就更多,一次性讀入記憶體的關鍵字變多,相對i/o請求次數變少。
2.查詢效率更加穩定
因為b+樹只有葉子節點儲存資料,其他節點相當於是葉子節點的索引,所以查詢每個結點都需要通過根節點一直找到最底層,所以查詢效率穩定。
面試基礎知識 資料庫
事務是指作為單個邏輯工作單元執行的一系列操作,可以被看作乙個單元的一系列sql語句的集合。要麼完全地執行,要麼完全地不執行。如果不對資料庫進行併發控制,可能會產生 髒讀 非重複讀 幻像讀 丟失修改的異常情況。同一時間,只允許乙個事務請求同一資料,不同的事務之間彼此沒有任何干擾。比如a正在從一張銀行卡...
資料庫索引相關知識
查詢條件欄位和排序字段,新增聯合索引,查詢條件欄位在聯合索引的前面 整數型別比字元型別處理開銷更小 盡量避免null,應該指定列為 not null,使用乙個特殊的值 0,或者空值 來代替null 含有null的列很難進行查詢優化,建立索引的原則 1.對於查詢中很少涉及的列或者重複值比較多的列,不要...
初識資料庫索引
資料庫表索引其實就是為了使查詢資料效率快 1 聚集索引 主鍵索引 在資料庫裡面,所有行數都會按照主鍵索引進行排序。2 非聚集索引 就是給普通字段加上索引。3 聯合索引 就是好幾個字段組成的索引,稱為聯合索引。1.建立普通索引 create index indexname on tablename n...