Mysql 聚簇索引與非聚簇索引
阿新 • • 發佈:2020-12-10
一、概念
聚簇索引:在主索引的檔案上直接存放該行資料的索引儲存結構稱為聚簇索引,次索引指向對主索引的引用。(innodb)
非聚簇索引:主索引和次索引都指向物理行(磁碟位置).
二、INNODB和MYISAM的主鍵索引與二級(次)索引的對比:
總結:InnoDB的主索引的節點與資料放在一起,次索引的節點存放的是主鍵的位置。myisam的主索引和次索引都指向該資料在磁碟的位置。
注意: innodb來說,
1: 主鍵索引 既儲存索引值,又在葉子中儲存行的資料
2: 如果沒有主鍵, 則會Unique key做主鍵
3: 如果沒有unique,則系統生成一個內部的
4: 像innodb中,主鍵的索引結構中,既儲存了主鍵值,又儲存了行資料,這種結構稱為”聚簇索引”
三、聚簇索引 優劣勢
優勢: 根據主鍵查詢條目比較少時,不用回行(資料就在主鍵節點下)
劣勢: 如果碰到不規則資料插入時,造成頻繁的頁分裂.
四、聚簇索引的頁分裂
高效能索引策略:
對於innodb而言,因為節點下有資料檔案,因此節點的分裂將會比較慢.
對於innodb的主鍵,儘量用整型,而且是遞增的整型.
如果是無規律的資料,將會產生的頁的分裂,影響速度.