日期:2014-05-16 浏览次数:20446 次
一、B-Tree索引
1.??选择索引字段的原则:
?2.??选择建立复合索引
?复合索引的优点:
什么情况下优化器会用到复合索引呢?
?????? (a) 当SQL语句的WHERE子句中有用到复合索引的领导字段时,ORACLE优化器会考虑用到复合索引来访问.
?(b) 当某几个字段在SQL语句的WHERE子句中经常通过AND操作符联合在一起使用作为过滤谓词,并且这几个字段合在一起时选择性比各自单个字段的选择性要更好时,可
?????? 能考虑用这几个字段来建立复合索引.
?????? (c) 当有几个查询语句都是查询同样的几个字段值时,则可以考虑在这几个字段上建立复合索引.
复合索引字段排序的原则:
二、位图索引
什么情况下位图索引能够改善查询的性能呢?
位图索引与B-TREE索引的比较
三、索引和NULL
??????? NULL值在索引中是被看做一个独特值的除非当一个索引的两行或多行的NON-NULL值是相等的情况下.在那种情况下,行被看做是相等的,因此,唯一索引不允许行包含空值以怕被看做是相等的.但是,当所有的行都是空值时,这个规则就不适用.ORACLE并不索引所有健值都为NULL的表的行,除非是位图索引或当主键字段值是NULL时
?
四、建立索引常用的规则如下
????????A、正确选择复合索引中的主列字段,一般是选择性较好的字段;
??????? B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
??????? C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
?
D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
????????E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;
??????? 以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一