码迷,mamicode.com
首页 > 其他好文 > 详细

如何创建高效索引

时间:2015-09-02 02:20:10      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:oracle   表达式   选择性   索引   where   

索引创建指南

1、频繁在where 从句中出现

2、频繁在join关联字段中

3、选择具有高选择性的键

4、别在具有很少的不同值的键上使用B-tree索引。这类键或表达式经常具有较差选择性,所以不会是性能有更多的优化,

5、除非经常选择的值比其他的值出现的频次要低。要是这种情况,可有效使用位图索引,但是如果在高并发的OLAP系统,位图索引要是经常被改动,则不要使用位图索引。

6、不要在常被修改到字段上建索引。

7、不要对仅出现在where从句中的函数或表达式中的字段建索引,要么就建函数索引

8、可考虑在外键上建索引。

9、创建一个索引时,评估该索引给查询带来的性能优化是否比因其而引起INSERT,UPDATE,DELETE操作的性能下降以及索引占用的空间更要值得。

10、复合索引

提高了选择性(有时,组合的选择性要比单个列的选择性要高)

降低I/O(如果锁被查询选择的列都在复合索引中,那Oracle可通过访问索引来返回值而不需要访问表。)

经常在WHERE从句中通过以AND组合出现,并且尤其是组合后比单一键选择性更高,该组合上可考虑常见复合索引

如果查询的列是组合列的子集,可考虑基于这些键建复合索引

索引的顺序:

该索引能够使WHERE从句可组成索引的前导列

如果WHERE从句中有几个键非常高频,可仅就这几个列键建复合索引

如果所有的列出现在WHERE的频率都一样并且数据基于其中一列已物理排序,那么可将此列作为复合索引的第一个key。

使用非唯一性索引实现唯一性:
你可以用表的已存在的在UNIQUE约束字段或PRIMARY KEY约束字段上的非唯一性索引强制实现唯一性。这样做的好处在于即使约束DISABLE了,

该索引仍然有效。所以,可让一个DISABLED的UNIQUE或PRIMARY KEY重新ENABLE,不需要再重建唯一性索引。这样可以在大数据表的ENABLE

操作中节省很多时间。


本文出自 “数据库攻城狮” 博客,请务必保留此出处http://liu16.blog.51cto.com/6494747/1690557

如何创建高效索引

标签:oracle   表达式   选择性   索引   where   

原文地址:http://liu16.blog.51cto.com/6494747/1690557

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!