MySQL 8查询未使用id索引反而执行全表扫描的问题求助
MySQL 8查询未使用id索引反而执行全表扫描的问题求助
各位大佬好,我碰到一个MySQL 8的棘手问题,想请教下大家的解决方案:
我用的数据库引擎是MySQL 8,有一张user_actions表,其中id字段是int类型,并且已经在这个字段上创建了名为index_id的索引。最近执行一条简单查询时,明明where条件是通过id in (3,5,7,34,56)来过滤的,但查询却没有用上这个索引,反而走了全表扫描。
我已经更新过这张表的统计信息了,而且同样的查询在MariaDB里是能正常使用索引的。我不想修改查询语句来加FORCE INDEX,希望能让MySQL的优化器自己选择使用索引。
下面是这条查询的执行计划:
1 SIMPLE user_actions ALL index_id 558242932 0.0 Using where; Using parallel query (2 columns, 1 filters, 1 exprs; 0 extra) 1 SIMPLE user_actions eq_ref PRIMARY PRIMARY 8 db.user_actions.id 1 100.0
备注:内容来源于stack exchange,提问作者james nathan
相关产品推荐
相关产品推荐

