谢谢楼上两位 如果是where 呢 如select * from tab where a='a' and b='b' 如果索引是a,b,c组成的,上面查询语句是否会快一些?
select * from tab where a='a' and b='b' and c='c' 因为你键的是组合索引,所以必须a,b,c同时出现在where条件中, 其实,你可以查看执行计划,从中你可以看出oracle的优化器是否 用到索引
如果条件适合,oracle会用索引。 如果写成: select b,c from tab where c='c' and b='b'; oracle可能也会利用索引。不过是索引全扫描,而不是范围扫描如果写成: select d from tab where c='c' and b='b'; oracle就会直接扫描原表了。
如果是where 呢
如select * from tab where a='a' and b='b'
如果索引是a,b,c组成的,上面查询语句是否会快一些?
因为你键的是组合索引,所以必须a,b,c同时出现在where条件中,
其实,你可以查看执行计划,从中你可以看出oracle的优化器是否
用到索引
如果写成:
select b,c from tab where c='c' and b='b';
oracle可能也会利用索引。不过是索引全扫描,而不是范围扫描如果写成:
select d from tab where c='c' and b='b';
oracle就会直接扫描原表了。