SQL Server索引管理之六大铁律(2)
来源:asp之家 发布时间:2009-11-26 14:55:00
铁律四:表中若有主键或者外键,一定要为其建立索引
定义有主键的索引列,一定要为其建立索引。因为主键可以加速定位到表中的某一行。结合索引的作用,可以使得查询的速度加倍。如在员工信息表中,我们往往把员工编号设置为主键。因为这不但可以提高查询的速度,而且因为主键要求记录的唯一,还可以保证员工编号的唯一性。此时,若再把这个员工编号字段设置为索引,则通过员工编号来查询员工信息,其效率要比没有建立索引高出许多。
另外,若要使得某个字段的值唯一,可以通过两种索引方式实现。一种就是上面所讲的主键索引。还有一种就是唯一索引,利用UNIQUE关键字指定字段内容的唯一性。这两种方式都会在表中的指定列上自动创建唯一索引。这两种方式的结果没有明显的区别。查询优化器不会区分到底是哪种方式建立的唯一性索引,而且他们进行数据查询的方式也是相同的。
若某张表中的数据列定义有外键,则最好也要为这个字段建立索引。因为外键的主要作用就在于表与表之间的连接查询。若在外键上建立索引,可以加速表与表之间的连接查询。如在员工基本信息表中,有一个字段为员工职位。由于员工职位经常在变化,在这里,存储的其实只是一个员工职位的代码。在另外一张职位信息表中详细记录着该职位的相关信息。此时,这个员工职位字段就是外键。若在这个字段上建立外键,则可以显著提高两张表的连接速度。而且,记录越多,其效果越加明显。
所以,当表中有外键或者主键的时候,就最好为其建立索引。通过索引,可以强化主键与外键的作用,提高数据库的性能。
铁律五:对于一些特殊的数据类型,不要建立索引
在表中,有些字段比较特殊。如文本字段(TXT)、图像类型字段(IMAGE)等等。如果表中的字段属于这些数据类型,则最好不要为其建立索引。因为这些字段有一些共同的特点。如长度不确定,要么很长,几个字符;要么就是空字符串。如文本数据类型常在应用系统的数据库表中用来做备注的数据类型。有时候备注很长,但有时候又没有数据。若这种类型的字段上建立索引,那根本起不了作用。相反,还增加了系统的负担。
所以,在一些比较特殊的数据类型上,建立索引要谨慎。在通常情况下,没有必要为其建立索引。但是,也有特殊的情况。如有时候,在ERP系统中,有产品信息这个表,其中有个产品规格这个字段。有时候,其长度可能长达5000个字符。此时,只有文本型的数据类型可以容纳这么大的数据量。而且,在查询的时候,用户又喜欢通过规格这个参数来查询产品信息。此时,若不为这个字段建立索引的话,则查询的速度会很慢。遇到这种情况时,数据库管理员只有牺牲一点系统资源,为其建立索引。
从这里也可以看出,虽然以上几条说的时铁律,但是,是否需要遵循,还是需要数据库管理员根据企业的实际情况,做出合理的选择。
铁律六:索引可以跟Where语句的集合融为一体
用户在查询信息的时候,有时会经常会用到一些限制语句。如在查询销售订单的时候,经常会用到客户以及下单日期的条件集合;如在查询某个产品的库存交易情况时,就会利用产品编号与交易日期起止日期的条件集合。
对于这些经常用在Where子句中的数据列,将索引建立在Where子句的集合过程中,对于需要加速或者频繁检索的数据列,可以让这些经常参与查询的数据列按照索引的排序进行查询,以加快查询的时间。
总之,索引就好像一把 * 剑,即可以提高数据库的性能,也可能对数据库的性能起到反面作用。作为数据库管理员,要有这个能力判断在合适的时间、合适的业务、合适的字段上建立合适的索引。以上六个铁律,只是对建立索引的一些基本要求。


猜你喜欢
- 10月23日消息,网络电话服务Skype第三季度营收增长了27%,新增逾4000万用户。据国外媒体报道称,Skpye母公司eBay昨天发布了
- 原文标题为设计人32个好习惯,写的不错,很激励人心。说是设计人其实很多人都适用,我就给它小小的扩大了一下范围,换成了IT工作者,应该更合适的
- 11月12日,有网友在TechWeb论坛反映称,人民网即将推出微博客产品,TechWeb随即登录人民网,在该网站无线频段推出的微博客专题页面
- IDC首席分析师预计到2012年,美国云计算总开支将达到400亿美元,是2008年的3倍。面对这个巨大的利益诱惑,谷歌等IT企业早已跃跃欲试
- FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用FTP,都会遇到大量的FTP内部命令。 熟悉并
- 在自己的电脑上安装了一个 Linux ubuntu系统,第一次安装,记录下每一步步骤,以下是安装过程:第一步:下载ubuntu镜像文件&nb
- 很多企业局域网内都架设了邮件服务器,用于进行公文发送和工作交流。但使用专业的企业邮件系统软件需要大量的资金投入,这对于很多企业来说是无法承受
- 前言:这篇文章主要是帮助没有购买过美国主机的朋友全面的认识美国主机的特点,以方便大家在中美两国主机的选择上有一个比较完善的参考意见。区别一:
- 有时候,我们需要在WINDOWS服务器中安装多个不同版本的PHP环境,或采用不同的PHP.ini配置,例如在使用中国E商务网的IONCUBE
- UUCall被誉为网络电话第一品牌,10月初意外关闭 (腾讯科技配图)10月12日早间消息,UUCall负责人汪先生昨日接受腾讯科技独家专访
- “很黄,很暴力”事件发端于mop网(www.mop.com)并非偶然,这是mop所提倡的“BT文化”结下的又一个“怪胎”。最近几年来,以互联
- VMware虚拟机中安装好了VMware Tools,才能实现主机与虚拟机之间的文件共享,下面介绍的是MacOSX10.11中如何安装VMw
- 前言其实,在服务器的安全设置方面,我虽然有一些经验,但是还谈不上有研究,所以我写这篇文章的时候心里很不踏实,总害怕说错了会误了别人的事。本文
- 1、如果你必须使用Java script的下拉菜单、图片地图、或者图片链接,那么你一定要放置它们的文本链接在页面的某些地方,以便于搜索引擎的
- 最近有和朋友谈论百度快照不更新,首页Site不是第一的问题,下面简单的说一下自己怎样把自己的站快照和site不正常到正常的经历,绝非抄袭别人
- 前几日看了些雅虎统计的枪稿大赛文章(顺便为自己的参赛稿作下广告:雅虎统计稳定见证小站流量爬升),感觉雅虎统计给大家的印象确实不错,而本人也因
- 1、传统媒体的运用在现阶段的中国,传统媒体宣传的影响力仍然远大于网络,特别是对于面向国内的站点,电视、报纸、杂志等这些媒体的效应可以说是立竿
- 这是一个用来在您站点上显示 Alexa Rank 的插件。http://wordpress.org/extend/plugins/alexa
- 一、安装cmake1、解压cmake压缩包[root@mysql tools]# tar -zvxf cmake-2.8.8.tar.gz[
- 12月16日,国内知名CMS厂商PHP168发布了其最新版的V6.02增强版,这个版本跟上一个版本相比,共改进了27项功能。大家如果对能需要