为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:一张表中有两个字短,主键id和业务businessId,其中主键id没有设置为聚集主键,就是普通的二级索引,在select * from table where businessId in('A','B'.....)的查询语句中,这条sql语句并没有走businessId索引,而是进行了全表扫描。导致查询sql的耗时非常长,但是当我用hint语法强制指定走businessId后,速度明显缩小到1s以内。请问这个是因为主键id不是聚集索引没办法回表,才导致语句不通过走businessId的索引吗?
PS:数据量在2000w行左右
把前后的执行计划贴出来
可能原因:统计信息不准确,导致优化器舍弃了该索引扫描而选择全表扫描。