MySQL innodb如何選擇一個聚簇索引

chenfeng發表於2018-10-12

對於innodb,主鍵毫無疑問是一個聚簇索引。但是當一個表沒有主鍵,或者沒有一個索引,innodb會如何處理呢。請看如下規則:


如果一個主鍵被定義了,那麼這個主鍵就是作為聚簇索引

如果沒有主鍵被定義,那麼該表的第一個唯一非空索引被作為聚簇索引

如果沒有主鍵也沒有合適的唯一索引,那麼innodb內部會生成一個隱藏的主鍵作為聚簇索引,這個隱藏的主鍵是一個6個位元組的列,該列的值會隨著資料的插入自增。


注意的地方:

二級索引的葉子節點並不儲存行資料的實體地址。而是儲存的該行的主鍵值。

所以:二級索引包含了兩次查詢。一次是查詢次級索引自身。然後查詢主鍵(聚簇索引)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2216192/,如需轉載,請註明出處,否則將追究法律責任。

相關文章