Chinaunix首页 | 论坛 | 博客
  • 博客访问: 426713
  • 博文数量: 239
  • 博客积分: 8010
  • 博客等级: 中将
  • 技术积分: 2431
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-02 21:12
文章分类
文章存档

2008年(239)

我的朋友

分类: Oracle

2008-06-17 23:59:04

为什么要使用索引

索引方便用户对数据的访问。在应用系统中,为数据库中的表建立正确、合理的索引,可以极大地提高应用系统的性能:

1)在存取数据时,避免进行表扫描。没有索引,对表中数据的任何访问都要进行表扫描。在表上建立索引,虽然不会完全避免表扫描的执行,但会大大降低它的执行次数。

2)在点查询中,定位到包含特定值的特定数据项。使用索引,可以快速地定位单条记录在表中的位置,通过两次磁盘读,就可以获得该记录的数据。相对于表扫描来说,其处理速度的提高是不言而喻的。

3)在域查询中,建立读取数据的上限和下限。对某一范围的记录查询,通过索引可以获取记录在表中的存储范围,从而减少查询的I/O操作。

4)在索引覆盖一个查询时,完全避免对表的存取。如果一个查询涉及的字段都包含在索引中,数据库系统就使用索引访问,代替对表的访问。由于索引中字段少、每个数据页包含更多的记录,将减少查询的I/O操作。

5)使用有序数据,避免排序操作。对一个查询,如果要求对处理结果进行排序,那么在查询时使用索引,将会避免排序操作的执行。

6)在表连接时,选择更合理的连接顺序和连接方式。对于需要进行连接的表,优化器会根据表上是否存在索引,选择表的连接顺序和连接方式。

此外,在表上建立索引,还可强制实现数据的唯一性。合理地创建表的聚集索引,会使插入表中的记录随机地存放。

阅读(598) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~