mysql in不走索引可能的情况


在MySQL 5.7.3以及之前的版本中,eq_range_index_dive_limit的默认值为10,之
后的版本默认值为200。所以如果大家采用的是5.7.3以及之前的版本的话,很容易采用索引统计数据而
不是index dive的方式来计算查询成本。当你的查询中使用到了IN查询,但是却实际没有用到索引,就
应该考虑一下是不是由于 eq_range_index_dive_limit 值太小导致的。

意思是如果你的in里面参数超过了这个限制值,就不会走索引查询。

参考: <<MySQL是怎样运行的:从根儿上理解>> 12.2.3 基于索引统计数据的成本计算


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM