innodb的主鍵就是聚簇索引,
myISAM 主鍵還是二級索引都是非聚簇索引。
1.非聚簇索引:
表和所有是分2部分儲存的,通過索引的查找找需要的表的數據的地址
2. 聚簇索引:
主鍵的葉子下包含了數據,其他索引指向主鍵:
- 所以InnoDB所有表一定要有主鍵,如果你自己沒有顯式定義主鍵,MySQL會自動選擇一個可以唯一標識的數據作爲主鍵,如果沒有unique的列,那mysql會自動創建一個隱式主鍵
- 還有一件事就是關於添加一個自增主鍵在磁盤上會,自動開闢新的連續的頁,極大的方便的查詢,速度增加,可維護性高,插入更快,而且有效減少儲存碎片。