數據庫索引絕對是數據庫知識體系裏面很重要的一部分,上網查資料很容易被誤導,或者講的太深容易讓人云裏霧裏。
沒辦法,只能慢慢的不斷覈實和訂正。
以此文記錄,記錄學習索引的的階段性總結。
1.面試:說一說聚簇索引和非聚簇索引的區別。
我會毫不猶豫的答道:
聚簇索引的葉子節點就是數據節點,包含了全部數據,而非聚簇索引僅僅是包含列值和主鍵值(InnoDB) 或者是 行指針(MyIASM)。
2.InnoDB的聚簇索引文件本身就是表文件,二者是等價的。
3.InnoDB的主鍵就是聚簇索引,而其他索引都是非聚簇索引。
4.MYIASM索引都是非聚簇索引,包括主鍵索引。
5.InnoDB和MYIASM的非聚簇索引是由區別的,談非聚簇索引不分數據庫引擎就是耍流氓。
可以看出,InnoDB的輔助索引不需要維護行指針,因爲保存的是主鍵值(靠主鍵值去聚簇索引中找到數據),要回表查詢;
而MyIASM的輔助索引是需要維護行指針的,因爲數據方法地方可能會有變動。