1. 程式人生 > 實用技巧 >Mysql 聚簇索引與非聚簇索引

Mysql 聚簇索引與非聚簇索引

一、概念

  聚簇索引:在主索引的檔案上直接存放該行資料的索引儲存結構稱為聚簇索引,次索引指向對主索引的引用。(innodb)

  非聚簇索引:主索引和次索引都指向物理行(磁碟位置).

二、INNODB和MYISAM的主鍵索引與二級(次)索引的對比:

  

  總結:InnoDB的主索引的節點與資料放在一起,次索引的節點存放的是主鍵的位置。myisam的主索引和次索引都指向該資料在磁碟的位置。

  注意: innodb來說,

  1: 主鍵索引 既儲存索引值,又在葉子中儲存行的資料

  2: 如果沒有主鍵, 則會Unique key做主鍵

  3: 如果沒有unique,則系統生成一個內部的

rowid做主鍵.

  4: innodb,主鍵的索引結構中,既儲存了主鍵值,又儲存了行資料,這種結構稱為”聚簇索引”

三、聚簇索引 優劣勢

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

  劣勢: 如果碰到不規則資料插入時,造成頻繁的頁分裂.

四、聚簇索引的頁分裂

高效能索引策略:

  對於innodb而言,因為節點下有資料檔案,因此節點的分裂將會比較慢.

  對於innodb的主鍵,儘量用整型,而且是遞增的整型.

  如果是無規律的資料,將會產生的頁的分裂,影響速度.