匿名用户以索引列为查询条件进行查询并用主键对结果进行排序,执行了全表扫描
【 使用环境 】生产环境
【 OB or 其他组件 】OB
【 使用版本 】3.1.4-OceanBase CE
【问题描述】
有一数据量接近一亿的无分区表A,自增主键为b,联合索引列为c与d,执行如下sql:
Select * from A where c = 10000 order by b limit 1000;
表A中符合条件的数据量约为十万级,执行该sql时间超过1min
经检查执行计划,发现该sql实际执行了全表扫描
而将按主键排序去掉之后速度很快,检查执行计划走了联合索引
请问这种现象的原因是什么?是什么原理?联合索引为什么失效了?
【复现路径】
使用 Select /*+ INDEX(A c+d联合索引名) */ * from A where c = 10000 order by b limit 1000;
0.1s完成查询
【问题现象及影响】
看起来完全应该走索引列的查询却走了全表扫描
我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏

评论
