请问你的版本是多少?
目前我看了 4.2.1.3 和 4.2.1.6 下 执行计划是下面这种, 是可以走索引。
create table t10(id int primary key,c2 int, c3 int ,c4 int);
insert into t10 values(1,10,20,40),(2,8,16,32),(3,6,9,27),(4,16,32,64);
create index t10_ind1 on t10(c2,c3);
ALTER SYSTEM SET enable_sql_extension = TRUE;
-- 退出重进
analyze table t10 compute statistics;
explain select * from t10 where c2<1 and c3<1 and c4 <1;
(root@10.0.0.62:2881) [test]> explain select * from t10 where c2<1 and c3<1 and c4 <1;
+-----------------------------------------------------------------------------------------------------+
| Query Plan |
+-----------------------------------------------------------------------------------------------------+
| ========================================================= |
| |ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)| |
| --------------------------------------------------------- |
| |0 |TABLE RANGE SCAN|t10(t10_ind1)|0 |4 | |
| ========================================================= |
| Outputs & filters: |
| ------------------------------------- |
| 0 - output([t10.id], [t10.c2], [t10.c3], [t10.c4]), filter([t10.c3 < 1], [t10.c4 < 1]), rowset=16 |
| access([t10.id], [t10.c2], [t10.c3], [t10.c4]), partitions(p0) |
| is_index_back=true, is_global_index=false, filter_before_indexback[true,false], |
| range_key([t10.c2], [t10.c3], [t10.id]), range(NULL,MAX,MAX ; 1,MIN,MIN), |
| range_cond([t10.c2 < 1]) |
+-----------------------------------------------------------------------------------------------------+
12 rows in set (0.02 sec)