B-樹結(jié)構(gòu)
image.png
1.葉子節(jié)點(diǎn)具有相同的高度逊谋,葉子節(jié)點(diǎn)的指針為空
2.節(jié)點(diǎn)中的數(shù)據(jù)索引從左到右遞增排列
3.所有節(jié)點(diǎn)都存儲data
B+樹結(jié)構(gòu)
image.png
1.非葉子節(jié)點(diǎn)不存儲數(shù)據(jù)
2.葉子節(jié)點(diǎn)包含所有索引字段
3.葉子節(jié)點(diǎn)之間通過索引連接盛霎,提高查詢性能褐健。
Hash表
image.png
1.對索引求hash值就能查到對應(yīng)的buket
2.很多時候查詢效率比tree快蝌矛,但僅能滿足=脱羡,in的查找
3.hash沖突問題
MyISAM存儲引擎
image.png
非聚集索引纵柿,索引和文件分離
InnoDB存儲引擎
image.png
1.數(shù)據(jù)本身按B+樹組織的索引結(jié)構(gòu)文件
2.聚集索引葉子節(jié)點(diǎn)包含所有數(shù)據(jù)
3.為什么推薦使用整形的自增Id明刷?你不創(chuàng)建mysql自動幫你創(chuàng)建树瞭,增加數(shù)據(jù)庫的壓力拇厢,整形可以節(jié)省空間而且自增ID保證主數(shù)據(jù)遞增而且無重復(fù)。其次提高范圍查找效率晒喷,增加排序效率孝偎,提高掃表能力,順序訪問。如果主鍵是非自增 id凉敲,為了確保索引有序衣盾,mysql 就需要將每次插入的數(shù)據(jù)都放到合適的位置上寺旺。
4.為什么非主鍵索引葉子節(jié)點(diǎn)保存的是主鍵id?不應(yīng)考慮數(shù)據(jù)的一致性势决,而且可以節(jié)省索引的空間迅涮。
聯(lián)合索引
image.png