資料庫檔案系統及檔案系統都採用b+樹或者b-樹作為索引結構
1,d為b-tree的度,d>=2
2,h為b-tree的高;
3,每個非葉子節點都由n-1個key和n個指標組成,其中d <= n <=2d
4,每個葉子節點至少包含乙個key和兩個指標,最多包含2d-1個key和2d個指標
5,所有葉子節點都在同一層,深度等於樹高h
6,key和指標相互間隔,節點兩端是指標
7,乙個節點中的key從左至右非遞減排列
8,如果某個指標在節點node的左右,相鄰key分別是指向節點的上下界限
1,非葉子節點只儲存鍵值資訊
2,所有葉子節點之間都有乙個指標,雙向鍊錶
3,資料記錄都放在葉子節點中,不可能在非葉子節點命中
①效能更快
②不支援事務
③若有大量的select操作,使用myisam更好
myisam索引分為:主鍵索引和輔助索引
主鍵索引:葉子節點的data域儲存的是資料記錄的位址,key不可以重複!!!
輔助索引:葉子節點的data域儲存的是資料記錄的位址,key可以重複
①執行大量insert和update是更快
②支援事務、
innodb索引
分為:主鍵索引和輔助索引,其中主鍵索引的葉子節點的data域儲存的是完整的資料記錄,這個索引的key是資料表中的主鍵。
輔助索引的葉子節點的data域儲存的是主鍵。例如:唯一索引、普通索引、字首索引
輔助索引過程:先檢索輔助索引獲得主鍵,然後用主鍵到主鍵索引中檢索獲得的記錄
如何選擇資料庫引擎?
同乙個資料庫可以使用多種儲存引擎的表,如果對事務要求比較高,使用innodb;如果對查詢要求比較高使用myisam;如果是用於查詢的臨時表,可以選擇memory
主鍵索引和輔助索引的區別
mysql索引失效機制 MySQL 索引失效原理
一 聯合索引的b 樹 索引失效我們針對的是聯合索引,我們之前有講到過,在沒有遵守最佳左法則或者使用like或者使用百分號的情況下索引會失效。但是到底為什麼索引失效了並沒有解釋。索引失效和innodb引擎的b 樹儲存方式有關。我們知道單索引的b 樹是這樣的。聯合索引的b 樹也相差不多,因為聯合所有有多...
MySql索引型別及其機制
一 mysql索引型別 mysql目前主要有以下幾種索引型別 fulltext,hash,btree,rtree。mysql常見索引有 主鍵索引 唯一索引 普通索引 全文索引 組合索引 fulltext 即為全文索引,目前只有myisam引擎支援。其可以在create table alter tab...
MySQL 深入分析MySQL索引機制的實現
資料庫是乙個只要從事後端開發,就永遠離不開的技術,大部分企業選擇的資料庫都是mysql,所以需要我們對mysql有著足夠的了解。而mysql索引,我們都知道提高效能要加索引,也知道索引的結構是b tree,也都可以說出幾條加索引的原則,但再深入一點,往往就會詞窮,這可能就是知其然而不知其所以然的結果...