Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1703234
  • 博文数量: 136
  • 博客积分: 10021
  • 博客等级: 上将
  • 技术积分: 3261
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-22 11:26
文章分类

全部博文(136)

文章存档

2010年(1)

2009年(26)

2008年(109)

我的朋友

分类: Oracle

2008-06-02 09:03:28

创建索引的唯一理由就是它可以提高访问数据的速度。但不要随意的创建索引,因为这会增大 DML 语句的执行开销。事实上,在某些情况下索引引起的问题比解决的问题更多。很多情况下,需要反复试验才能确定一个索引是否有助于提高系统性能。
 
在 Oracle 中,有两种主要的索引类型:B 树索引和位图索引。其中 B 树索引还有几个子类型:唯一性索引、非唯一性索引、简单索引、复杂索引、基于函数的索引,和索引组织的表(IOT);而位图索引只有一种,某些情况下,位图索引能在字段选择性不高的情况下工作得很好。
 
如果决定创建一个索引,那么确定为哪些字段创建索引是非常重要的。对于不同的表,可能会选择一个或多个字段来创建索引。可以使用如下的方法来确定在哪些字段上创建索引:
 
* 选择那些最常出现在 WHERE 子句中的字段,经常被访问的字段最可能收益于索引;
* 经常用于连接表的字段是创建索引的必然候选字段;
* 必须注意索引导致的查询语句性能的提高与更新数据时性能的降低之间的平衡;
* 经常被修改的字段不适合创建索引,因为更新索引将导致系统开销。
阅读(1200) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~