Oracle 数据库中创建合理的数据库索引(3)

来源:asp之家 时间:2009-07-02 12:31:00 

三、 在一个表上创建多少索引合适?

虽然说,在表上创建索引的数量没有限制,但是决不是越多越好。也就是说,在创建索引这项事情上,1+1〉2往往不成立。有时候,创建索引越多,其可能会得到适得其反的效果。那么在一个表上,到底给创建多少索引合适呢?这个没有一个明确的标准。而是需要数据库管理员根据实际的用途以及数据库中记录的情况,来进行判断。

通常来说,表的索引越多,其查询的速度也就越快。但是,表的更新速度则会降低。这主要是因为表的更新(如往表中插入一条记录)速度,反而随着索引的增加而增加。这主要是因为,在更新记录的同时需要更新相关的索引信息。为此,到底在表中创建多少索引合适,就需要在这个更新速度与查询速度之间取得一个均衡点。如对于一些数据仓库或者决策型数据库系统,其主要用来进行查询。相关的记录往往是在数据库初始化的时候倒入。

此时,设置的索引多一点,可以提高数据库的查询性能。同时因为记录不怎么更新,所以索引比较多的情况下,也不会影响到更新的速度。即使在起初的时候需要导入大量的数据,此时也可以先将索引禁用掉。等到数据导入完毕后,再启用索引。可以通过这种方式来减少索引对数据更新的影响。相反,如果那些表中经常需要更新记录,如一些事务型的应用系统,数据更新操作是家常便饭的事情。此时如果在一张表中建立过多的索引,则会影响到更新的速度。由于更新操作比较频繁,所以对其的负面影响,要比查询效率提升要大的多。此时就需要限制索引的数量,只在一些必要的字段上建立索引。

笔者在平时数据库优化时,往往会根据这些表的用途来为列设置索引。可以查询相关的动态视图,看看对于这张表的操作,是更新操作(包括更新、删除、插入等等)占的比例大,还是查询操作占的比例大。当过多的索引已经影响到更新操作的速度时,则数据库管理员就需要先禁用某些索引,以提高数据库的性能。

总之,在适当的表、适当的列上建立适当的索引。这一句话包含的意思有很多,以上内容只是一部分内容。俗话说,师傅领进门,修行靠自身。笔者在这里指能够点到为止。一些具体的索引优化内容还是需要各位读者在日常工作中去体会与总结。

标签:Oracle,数据库,索引
0
投稿

猜你喜欢

  • js自定义快捷,IE,FF有良好的支持

    2007-08-25 17:34:00
  • 网页设计中HTML常范的五个错误

    2008-04-22 18:14:00
  • ASP中使用存储过程介绍

    2008-10-10 12:10:00
  • 利用索引提高SQL Server数据处理的效率

    2009-01-08 15:32:00
  • ASP中模拟PHP的关联数组

    2009-12-25 16:31:00
  • Mysql的最大连接数怎样用java程序测试

    2009-01-14 12:05:00
  • XHTML1.0与HTML兼容指引16条[译]

    2009-06-10 14:45:00
  • Rs.Open参数说明

    2008-05-12 22:43:00
  • ASP 判断是否有中文的代码

    2011-04-15 11:07:00
  • 多栏自适应布局问题浅谈

    2010-08-16 12:56:00
  • 带你轻松接触MaxDB和MySQL之间的协同性

    2008-12-03 17:10:00
  • ASP项目中的asp分页 翻页模块函数

    2010-04-03 21:03:00
  • ASP技巧:禁用清除页面缓存的五种方法

    2009-07-21 12:33:00
  • css实现图片倒影效果

    2007-11-05 18:29:00
  • WEB标准与XHTML 1.0 Transitional等文档类型介绍

    2007-10-20 21:18:00
  • 通向MySQL神秘王国的图形化之路

    2008-12-08 13:43:00
  • 用ASP读取/写入UTF-8编码格式的文件

    2007-08-20 09:29:00
  • QQ在线客服网页代码大全

    2008-01-17 18:28:00
  • 用"表情符号"做植入广告 是否可行呢?

    2009-02-23 13:07:00
  • asp函数InstrRev()介绍及获取文件名例子

    2007-11-19 19:01:00
  • asp之家 网络编程 m.aspxhome.com