關於MySQL InnoDB表的二級索引是否加入主鍵的總結
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版本統一。
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Mysql】InnoDB 中的聚簇索引、二級索引、聯合索引MySql索引
- mysql關於聚集索引、非聚集索引的總結MySql索引
- mysql關於表空間的總結MySql
- mysql關於臨時表的總結MySql
- mysql關於memory引擎的表的總結MySql
- MySQL null值欄位是否使用索引的總結MySqlNull索引
- 關於InnoDB表資料和索引資料的儲存索引
- 關於Mysql索引的資料結構MySql索引資料結構
- mysql關於variable的總結MySql
- mysql關於mysql.server的總結MySqlServer
- 探索MySQL的InnoDB索引失效MySql索引
- MySQL InnoDB 索引MySql索引
- mysql關於二進位制日誌binary log的總結MySql
- MySQL InnoDB的索引擴充套件MySql索引套件
- MySQL InnoDB搜尋索引的StopwordsMySql索引
- Redshift關於SORTKEY排序鍵、DISTKEY分配鍵的總結排序
- mysql關於mysqld_safe的總結MySql
- mysql索引總結MySql索引
- SqlServer關於分割槽表的總結SQLServer
- MYSQL order by排序與索引關係總結MySql排序索引
- 技術分享 | MySQL 大表新增唯一索引的總結MySql索引
- mysql innodb索引高度MySql索引
- Sql Server關於indexed view索引檢視的總結SQLServerIndexView索引
- Mysql關於自增主鍵,自增主鍵優化總結MySql優化
- InnoDB關鍵特性之自適應hash索引索引
- 【Mysql】InnoDB 中的 B+ 樹索引MySql索引
- 關於Mysql使用的一些總結MySql
- MySql關於鎖的一些總結MySql
- MySQL索引——總結篇MySql索引
- mysql關於db.opt檔案的總結MySql
- mysql關於字符集character set的總結MySql
- Sqlserver 關於臨時表和表變數的總結SQLServer變數
- SQL Server 遷移至MySQL 關鍵步驟的梳理總結ServerMySql
- InnoDB常用鎖總結(行鎖、間隙鎖、臨鍵鎖、表鎖)
- MySQL中InnoDB引擎對索引的擴充套件MySql索引套件
- 關於近期的總結
- MySQL索引(二):建索引的原則MySql索引
- mysql索引使用經驗總結MySql索引