首先,主键索引其实就是数据本身,它的叶子页包含主键及其对应的所有行数据。不仅联合索引,所有非主键索引(二级索引)的叶子页,都会包含主键,哪怕你的表没建主键,mysql也会在表上建一个隐式主键,你的二级索引同样会包含它。当使用二级索引进行查询时,会先获得二级索引叶子页上的数据和对应的主键,然后通过主键再查找主键索引,获得其它列的数据,也就是说,通过二级索引查找时,会进行两次索引查找。所以,选择主键时,尽可能的使用较小的主键,过大的主键会导致二级索引也都比较大。