關於MySQL InnoDB表的二級索引是否加入主鍵的總結

chenfeng發表於2018-06-04
1.對於MySQL InnoDB表的二級索引是否加入主鍵,官方也有明確的說明,建議線上MySQL的二級索引建立時強制加入主鍵所有的列,可以做到所有的MySQL 版本統一。


2.MySQL 5.6.9之前,InnoDB引擎層是會對二級索引做自動擴充套件,但是最佳化器不能識別出擴充套件的主鍵。


3.MySQL 5.6.9開始InnoDB引擎層是會對二級索引做自動擴充套件,最佳化器能識別出擴充套件的主鍵。


4.索引的大小一樣,二級索引有沒有加入主鍵列,在InnoDB引擎層二級索引都會自動擴充套件主鍵,這個跟版本無關。


5.有無加入主鍵列,二級索引的組織結構和物理大小是一樣,因為在儲存引擎層面組織結構是一樣的。


6.在最佳化器層面,5.6.9之前是無法識別自動擴充套件的主鍵列,從5.6.9開始最佳化器的開關 use_index_extensions=on是可以識別擴充套件的主鍵列,所以在二級索引加入主鍵列有有利的。這也可以做到與版本無關,做到所有MySQL版本統一。

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

相關文章