MySQL5.6 Internals-隐藏的索引列
Louis Hust
0 前言
今天本来想跟踪MySQL5.6中的新特性Index Merge,结果在跟踪的过程中,发现了一个问题,即InnoDB的二级索引中 可能会包含主索引,当然这里的包含并不是说二级索引的row里面会有pk的记录,这一点是一直存在的,这里的包含 是指,二级索引也会包含主索引进行排序。
1 现场重现
1.1 初始化数据
mysql> show create table index_merge\G
*************************** 1. row ***************************
Table: index_merge
Create Table: CREATE TABLE `index_merge` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
`c2` int(11) DEFAULT NULL,
`c3` varchar(100) DEFAULT NULL,
PRIMARY KEY (`c1`),
KEY `c2` (`c2`)
) ENGINE=InnoDB AUTO_INCREMENT=10002 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
mysql> show create procedure fill_index_merge\G
*************************** 1. row ****************