[转]oracle的复合索引两个知识点

Oracle 9i以前的复合索引:
如果索引有多个字段组成,索引中每个字段对于查询的价值是不同的,通常最常用到的查询字段应该放在最前面;或者相同查询几率的字段根据字段内容的相异程度(相异程度越高,索引效率越高)来决定。即:建索引的时候除了要考虑前置列,最好还要考虑DISTINCT数量最多的建为索引。  
一个原则:如果在where条件中有对索引中第一个字段的查询,索引是可以被使用的;但是如果在where条件中没有对索引中第一个子段的查询而只有后面的字段的话,索引是无法使用的。
即:9I之前:那么要考虑你的复合索引的第一列必须在你的查询中被引用,这样你的复合索引才会起作用,否则这个索引就不起作用,照样是全表访问。
oracle 9i以后的复合索引: 
无所谓必须使用索引中的第一个字段了。
9I之后:就不受上面条件的限制,怎么建都行。

 


oracle在一个复合索引中,最多可以由多少个列?
组合索引最多可放置32个列,所有列得总尺寸不能超过db_block_size得1/3.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值