mysql range索引_mysql 索引 index range

今天在调试一个BUG的时候,无意间发现 explain 发现了 index range;

3b824b7bdc292c95756b7a419a87b2f8.png

之前对于索引的理解是,单个索引每次查询只能用一个索引。于是赶紧查一下,果然存在这个优化器在适当的时候会选择使用两个索引然后取交集,并集。

又一想那效率和符合索引有什么区别呢? 实验发现还是符合索引速度快,而且快不少。看来出现index range 不是最优的索引。

24e3f0314bd008fab875698dc9a2ae2d.png

效率对比:

符合索引(user_id,type)

3f782d2b30b5eb107b13b2e63c9298fb.png

单个索引user_id,type 优化器自动选择两个索引交集

18a54ce291e13cca5e211a82c1760c49.png

总结:符合索引还是第一选择。

附上两篇关于index range 讲解:

http://dev.mysql.com/doc/refman/5.7/en/index-merge-optimization.html

http://www.orczhou.com/index.php/2013/01/mysql-source-code-query-optimization-index-merge/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值