有表如下:
create table test2(col1 int,col2 int,col3 int,col4 int,col5 int);
alter table test2 add constraint pk_test2 primary key (col1, col2, col3);
主键索引有三个字段:col1,col2,col3
只有sql中where条件中出现组合索引的第一个列是索引才会被使用到
测试如下:
生成数据:
begin
for i in 1 .. 100000 loop
insert into test2
values
(i,
DBMS_RANDOM.value(1, 1000),
DBMS_RANDOM.value(1, 1000),
DBMS_RANDOM.value(1, 1000),
DBMS_RANDOM.value(1, 1000));
end loop;
end;
测试结果:
select * from test2 where col1<=1000;--索引会被使用到;
select * from test2 where col2<=1000;--索引不会被使用到;
select * from test2 where col3<=1000;--索引不会被使用到;