SQL Server索引管理之六大铁律(2)

来源:asp之家 时间:2009-11-26 14:55:00 

铁律四:表中若有主键或者外键,一定要为其建立索引

定义有主键的索引列,一定要为其建立索引。因为主键可以加速定位到表中的某一行。结合索引的作用,可以使得查询的速度加倍。如在员工信息表中,我们往往把员工编号设置为主键。因为这不但可以提高查询的速度,而且因为主键要求记录的唯一,还可以保证员工编号的唯一性。此时,若再把这个员工编号字段设置为索引,则通过员工编号来查询员工信息,其效率要比没有建立索引高出许多。

另外,若要使得某个字段的值唯一,可以通过两种索引方式实现。一种就是上面所讲的主键索引。还有一种就是唯一索引,利用UNIQUE关键字指定字段内容的唯一性。这两种方式都会在表中的指定列上自动创建唯一索引。这两种方式的结果没有明显的区别。查询优化器不会区分到底是哪种方式建立的唯一性索引,而且他们进行数据查询的方式也是相同的。

若某张表中的数据列定义有外键,则最好也要为这个字段建立索引。因为外键的主要作用就在于表与表之间的连接查询。若在外键上建立索引,可以加速表与表之间的连接查询。如在员工基本信息表中,有一个字段为员工职位。由于员工职位经常在变化,在这里,存储的其实只是一个员工职位的代码。在另外一张职位信息表中详细记录着该职位的相关信息。此时,这个员工职位字段就是外键。若在这个字段上建立外键,则可以显著提高两张表的连接速度。而且,记录越多,其效果越加明显。

所以,当表中有外键或者主键的时候,就最好为其建立索引。通过索引,可以强化主键与外键的作用,提高数据库的性能。

铁律五:对于一些特殊的数据类型,不要建立索引

在表中,有些字段比较特殊。如文本字段(TXT)、图像类型字段(IMAGE)等等。如果表中的字段属于这些数据类型,则最好不要为其建立索引。因为这些字段有一些共同的特点。如长度不确定,要么很长,几个字符;要么就是空字符串。如文本数据类型常在应用系统的数据库表中用来做备注的数据类型。有时候备注很长,但有时候又没有数据。若这种类型的字段上建立索引,那根本起不了作用。相反,还增加了系统的负担。

所以,在一些比较特殊的数据类型上,建立索引要谨慎。在通常情况下,没有必要为其建立索引。但是,也有特殊的情况。如有时候,在ERP系统中,有产品信息这个表,其中有个产品规格这个字段。有时候,其长度可能长达5000个字符。此时,只有文本型的数据类型可以容纳这么大的数据量。而且,在查询的时候,用户又喜欢通过规格这个参数来查询产品信息。此时,若不为这个字段建立索引的话,则查询的速度会很慢。遇到这种情况时,数据库管理员只有牺牲一点系统资源,为其建立索引。

从这里也可以看出,虽然以上几条说的时铁律,但是,是否需要遵循,还是需要数据库管理员根据企业的实际情况,做出合理的选择。

铁律六:索引可以跟Where语句的集合融为一体

用户在查询信息的时候,有时会经常会用到一些限制语句。如在查询销售订单的时候,经常会用到客户以及下单日期的条件集合;如在查询某个产品的库存交易情况时,就会利用产品编号与交易日期起止日期的条件集合。

对于这些经常用在Where子句中的数据列,将索引建立在Where子句的集合过程中,对于需要加速或者频繁检索的数据列,可以让这些经常参与查询的数据列按照索引的排序进行查询,以加快查询的时间。

总之,索引就好像一把 * 剑,即可以提高数据库的性能,也可能对数据库的性能起到反面作用。作为数据库管理员,要有这个能力判断在合适的时间、合适的业务、合适的字段上建立合适的索引。以上六个铁律,只是对建立索引的一些基本要求。

标签:MySQL,数据库,Mysql数据库,数据库命令
0
投稿

猜你喜欢

  • 企业Sendmail邮件服务器的创建(1)

    2008-01-29 11:01:00
  • Linux进程网络流量统计的实现过程

    2023-08-26 19:37:00
  • Linux系统平台下配置Proftp服务的小技巧

    2009-12-07 19:16:00
  • 如何恢复Win 2000个人配置

    2007-09-12 14:19:00
  • VirtualBox安装CentOS实现鼠标自动切换和复制粘贴功能

    2023-07-13 01:43:54
  • 谷歌Squared功能改进 但仍不认火星是行星

    2009-10-12 17:13:00
  • V5Shop联盟系统第三方嵌入式整合接口开通

    2009-11-19 07:53:00
  • IIS7在Windows Server 2008R2的新改进

    2009-01-14 11:02:00
  • 淘宝网在线手机充值,游戏点卡充值中心

    2008-12-12 12:43:00
  • 如何使用shell在多服务器上批量操作

    2023-08-28 21:09:12
  • 基础学习:反向链接对搜索引擎优化的影响

    2009-01-13 11:46:00
  • 浅论SEO行业优势与SEO团队优势

    2009-10-04 14:28:00
  • 不是那么一回事 中文搜索引擎的十大误区

    2008-12-14 07:21:00
  • 美图秀秀2.0.6 新增时尚“阿宝”色特效

    2009-11-23 14:21:00
  • UCenter Home群组管理功能详解

    2009-03-11 12:43:00
  • 无法识别的属性“type”+IIS没有Asp.net配置选项的解决方法

    2023-11-02 23:18:45
  • 好耶赵卓强:如何增强网络广告的营销效果

    2008-11-15 18:03:00
  • Adsense PIN 码最新更新

    2008-02-11 18:40:00
  • DNS服务器配置实例

    2009-01-23 17:13:00
  • 如何通过IIS日志分析网站的情况

    2008-07-27 16:55:00
  • asp之家 网站运营 m.aspxhome.com