全部评论
数据库索引最左匹配原则 1.建立联合索引时会遵循最左匹配原则,即最左优先,在检索数据时从联合索引的最左边开始匹配 2.如果联合索引中最左边的列不在查询条件中,则不会命中索引
我的理解是先走联合索引的覆盖索引,查出符合条件的主键,然后回表查对应的name。如果你把name换成主键,走的索引还是相同的,可以试下
孩子 这不是回表啊 用到索引了只是在索引范围内查找啊 快去补补基础吧
mysql 选择索引的几个条件之一: 1。 会优先选择区分度比较高的, 请看 name , 跟popu字段 谁的基数高 2。 会优先选择不需要回表的列。 如果用pop 索引 必定要回表,所以mysql没考虑 3。 order by 出现的列。 所以我推测符合条件2, 采用name_pop的原因就是name_pop不需要回表吧。 emmmm useing where 代表回表了吗? 我有空在翻翻书, 我也忘记了。
你直接对主键索引 进行 explain select id from t where id > 10; 也有using where ;
using where 不是只是说使用到了where查询吗?为啥说回表了?
Using index:表示相应的select操作用使用覆盖索引,避免访问了表的数据行。如果同时出现using where,表名索引被用来执行索引键值的查找;如果没有同时出现using where,表名索引用来读取数据而非执行查询动作。
用的Name_pop
索引优化了,你仔细看explain信息
猜应该是,<1000000这个条件让查询优化器放弃走索引,全表扫描了
相关推荐
04-09 15:41
门头沟学院 Java 点赞 评论 收藏
分享
04-11 17:06
西安邮电大学 网络工程师 点赞 评论 收藏
分享

点赞 评论 收藏
分享