表tb1仅有索引ix1(c1,c2,c3),查询语句select count(1) from tb1 where c2=? and c3=?使用ix1的访问计划会是?

A.TABLE GET
B.TABLE RANGE SCAN
C.TABLE SKIP SCAN
D.TABLE FULL SCAN

2 个赞

选C
在 OceanBase 数据库中,当复合索引的第一个列(c1)未出现在查询条件中,且该列的区分度很低(即只有很少的几个不同值)时,优化器会选择INDEX SKIP SCAN(索引跳跃扫描)来避免全表扫描。

3 个赞

选C

2 个赞

选C

1 个赞

选C

1 个赞

CCCC

2 个赞

选C

1 个赞

CCC

1 个赞

答案:C
C TABLE SKIP SCAN(跳跃索引扫描)
联合索引ix1(c1,c2,c3),查询无前置列c1过滤、仅用后置c2、c3条件,OceanBase 优化器采用索引跳跃扫描,跳过 c1 所有不同值,遍历索引匹配 c2、c3。

其余选项错误
A TABLE GET:主键精准单点查找,不适用
B TABLE RANGE SCAN:索引前缀连续范围扫描,缺 c1 无法走范围扫
D TABLE FULL SCAN:全表扫描,本题能利用索引,不会全表扫