对InnoDB覆盖索引的疑问首先,我对覆盖索引的了解是,如果创建了二级索引后,要想做到覆盖索引,那么你select的列就要被你的索引所覆盖比如,当我创建一个二级索引idx_name_age(name,age)对selectnamefromuserwherename="Jhon";语句,自然就可以做到覆盖索引这样就不用再回表走聚簇索引了但是当我selectidfromuserwhereid=1;时,这个用到了主键索引,也就是会直接走聚簇索引,既然走聚簇索引的话,B+Tree的叶子节点是包含所有列的,那我认为select*fromuserwhereid=1;也是一样的但explain的分析结果发现selectidfromuserwhereid=1;是主键索引,并且做到了覆盖索引但是select*fromuserwhereid=1;虽然是主键索引,但却不是覆盖索引,这是为啥?
慕尼黑5688855
qq_遁去的一_1
相关分类