索引數據結構
1.二叉樹
2.紅黑樹
1)自動平衡 hashmap jdk 1.8 >8 改爲紅黑樹
3.hash
行裏某一個字段做hash算法,保存這一行所在的磁盤指針。到行的字段
4.B樹 頭節點大約16k
1)葉子節點具有相同的深度,葉子節點指針爲空
2)索引元素不重複
3)節點中的數據索引從左到右遞增排列
5.b+樹
1)非葉子節點不存儲元素,只存儲索引,放更多索引
2)葉子節點包含所有索引字段
3)葉子節點有指針連接,提高區間訪問效率
myisam
索引文件和數據文件分開(非聚集)。如果查詢的字段是索引字段,則去b+樹查詢,最後找到葉子節點。根據地址找到一條記錄
innodb
聚簇索引:主鍵索引葉子節點包含完整數據
qs1.問爲什麼要有主鍵?答:數據是按照b+樹存儲的,維護表數據
2.主鍵索引和普通索引區別?答:主鍵索引,葉子節點存儲的是所有數據,而普通索引葉子節點保存的索引數據和主鍵地址,然後再通過主鍵查到所在行的左右數據。