浅谈对数据库模型进行性能优化

原创 2006年05月30日 15:05:00

对数据库模型进行性能优化

好了,借午休之际,让我们来聊聊对数据库模型进行性能优化的问题吧!

在一个数据库应用程序中,程序是从一个健全的数据库模型开始执行的。明白了这一点,我们来看几种可以优化数据库模型的方法,以通过这些方法可以提高查询效率。还等什么,赶快看看吧!

1.    少许的逆规范化(denormalization)大有帮助。不要出现有像名为Gender的表,表中有3个值。另外,如果你有一个一对一关系的表,而且它经常被它的父表访问,那么你就可以考虑合并这两张表。

2.       让应用程序多承担一些责任。如果可以通过应用程序更容易地析取数据,为什么还要生成视图来强制数据以某种确定方式出现呢?

3.       对数据进行水平划分。如果你有一个表示Web站点点击率的表,考虑把它按月份划分为12个表。如果数据时分布式的,那么你的负荷就变成了原有的1/12。这也可以让你把一些数据放在各个独立的服务器上,然后使用分布的划分视图(分区视图)来更新和查看数据。最后一点,这样做使你可以对当前月份使用更加积极的索引策略,并且对已经过去的月份使用更高的填充度。

4.       在行中保持尽可能少的内容。换句话说,就是不要使用一个char(255)类型来存储一个用户名的值,这只会造成空间的浪费。

5.       为了不破坏引用的完整性,要避免使用触发器。使用外健约束要快得多,并且这种约束更适合处理大多数的操作。

6.       避免使用text类型的字段。尝试找出对字段的确切要求是什么。如果你准备最多插入2000个字符,那么使用varchar(2000)会更加有效。

7.      除非你要使用多语言,否则不要使用像nvarcharntext这样的Unicode数据类型。然而,要牢记,当你使用DTS从另一个数据源(如Acess)转换数据的时候,DTS经常在服务器上创建Unicode的列。如果你的公司打算使用多语言,那么你就会需要这些数据类型。

8.      避免在标识列中创建聚集索引。聚集索引对于范围查询执行起来更好,如一个日期。如果在标识列中存在聚集索引,你的数据就有收到“热点”的风险。热点是由于很多人更新同一个数据页引起的。

9.      可能的话,不允许列为NULL。如果你知道你总是会得到地址信息的话,那么你就不需要为空的列。处理NULL会增加额外的开销。

10. 在某些情况下,如果表中存在惟一的数据列,那么要避免使用标识列。例如,如果用户名的值是惟一的,就不要另外创建没有必要的键。这样可以防止从子表中创建不必要的连接来确定用户名。这可能会占用一些存储空间,但可以给你节省大量的查询时间。要灵活处理这种实际情况,如果已经存在惟一的值,那么为什么还有人工去给它分配一个呢?

    好了,先谈到这儿了 ,开始工作了!

相关文章推荐

浅谈Oracle数据库性能的优化

  • 2011年12月26日 10:46
  • 210KB
  • 下载

浅谈前端性能优化(二)——对HTTP传输进行压缩

1、前端性能优化的一点: 对js、css、图片等进行压缩,尽可能减小文件的大小,减少文件下载的时间,从而减少网页响应的时间。   2、前端性能优化的另一点: 对HTTP传输进行压缩,即在js,css、...

浅谈MySQL 数据库性能优化

MySQL数据库是 IO 密集型的程序,和其他数据库一样,主要功能就是数据的持久化以及数据的管理工作。本文侧重通过优化MySQL 数据库缓存参数如查询缓存,表缓存,日志缓存,索引缓存,innodb缓存...
  • cwqcwk1
  • cwqcwk1
  • 2013年12月10日 23:21
  • 2578

Asp.Net性能优化浅谈

  • 2011年07月22日 09:03
  • 147KB
  • 下载

浅谈Java程序的性能优化

  • 2013年05月08日 09:04
  • 81KB
  • 下载

对oracle实例的内存(SGA和PGA)进行调整,优化数据库性能

对oracle实例的内存(SGA和PGA)进行调整,优化数据库性能
  • sqlove
  • sqlove
  • 2011年02月13日 10:47
  • 394

oracle实例的内存(SGA和PGA)进行调整,优化数据库性能

一、示例: SGA:     共享池:200MB              缓冲区高速缓存:24MB       大型池:9MB     Java池:32MB ...

通过对oracle内存(SGA和PGA)进行调整,优化数据库性能

通过对oracle内存(SGA和PGA)进行调整,优化数据库性能一、示例:_______________________________________________________________...
  • sqlove
  • sqlove
  • 2011年05月16日 22:59
  • 407
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅谈对数据库模型进行性能优化
举报原因:
原因补充:

(最多只允许输入30个字)