适用版本
OceanBase 数据库 V4.x 版本。
问题描述
以下表结构和 SQL 在查看执行计划的 operator 展示的是 table full scan,而 name 展示的是 t123(idx_c2_c3) 使用到了索引 idx_c2_c3,是不是矛盾了?

问题原因
符合预期。
关于执行计划中相关参数描述:
range_key:索引的 rowkey 列
range:索引开始扫描和结束扫描的位置。判断是否是全表扫描需要关注 range 的范围。例如,对于一个 rowkey 有三列的场景,range(MIN,MIN, MIN ; MAX, MAX, MAX) 代表的就是真正意义上的全表扫描。有 range 会展示 table range scan,或者 table get,没有 range 就是 table full scan。
针对本次疑问的执行计划展示中可以看到 range_key([t123.c2], [t123.c3], [t123.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true,这里没有 range ,所以 operator 展示的是 table full scan。
需要注意:扫索引在执行计划展示中的也是 TABLE 并不是 INDEX SCAN,具体是不是扫索引,需要看表后面的括号是否有索引名。