【 使用环境 】生产环境
【 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完成查询
【问题现象及影响】
看起来完全应该走索引列的查询却走了全表扫描
【附件】