三、聚簇索引和非聚簇索引

聚餐索引:數據存放在索引葉子節點下

非聚餐索引:索引和數據不是放在一起

myisam (使用非聚餐索引,索引和數據不是放在一起)

????1.索引和數據分別為單獨的文件,數據文件在磁盤上,每行都有自己的地址

????2.主索引和次索引都指向行在磁盤的位置

????3.先從索引樹找到數據的所在的位置,然后再到數據上取

如下圖所示


innodb

1.innodb的主索引文件上,直接存放了該行的數據,次索引指向對主鍵的引用

注意:

????主鍵索引既存儲索引值,又在葉子中存儲行的數據

????如果沒有主鍵,則會用unique key做主鍵

????若果沒有unique則系統生成內部的rowid做主鍵

????像innodb中,主鍵的索引結構中,既存儲了主鍵值,又存儲了行數據,這種結構稱為“聚簇索引”


聚簇索引

優勢:根據主鍵查詢條目比較少時,不用回行(數據就在主鍵節點下)

劣勢:如果碰到不規則數據插入,造成頻繁頁分裂,索引樹是有規律的,當插入的主鍵數據不規則時,索引樹需要重新排列。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容