聚餐索引:數據存放在索引葉子節點下
非聚餐索引:索引和數據不是放在一起
myisam (使用非聚餐索引,索引和數據不是放在一起)
????1.索引和數據分別為單獨的文件,數據文件在磁盤上,每行都有自己的地址
????2.主索引和次索引都指向行在磁盤的位置
????3.先從索引樹找到數據的所在的位置,然后再到數據上取
如下圖所示
innodb
1.innodb的主索引文件上,直接存放了該行的數據,次索引指向對主鍵的引用
注意:
????主鍵索引既存儲索引值,又在葉子中存儲行的數據
????如果沒有主鍵,則會用unique key做主鍵
????若果沒有unique則系統生成內部的rowid做主鍵
????像innodb中,主鍵的索引結構中,既存儲了主鍵值,又存儲了行數據,這種結構稱為“聚簇索引”
聚簇索引
優勢:根據主鍵查詢條目比較少時,不用回行(數據就在主鍵節點下)
劣勢:如果碰到不規則數據插入,造成頻繁頁分裂,索引樹是有規律的,當插入的主鍵數據不規則時,索引樹需要重新排列。