什么是索引?
提起索引,应该不会感到陌生,若说它就是目录,大概都知道了,数据库的索引与书的目录很相似,都叫index.书的内容相当于数据库表中的数据,书的目录通过页码指向书的内容,同样,索引也记录了表中的关键值,提供了指向表中行的指针.书的目录使读者很快的找到想看的内容,而不必翻看书的每一页,索引使得数据库应用程序能够不扫描全表而找到想要的数据.
索引是不是多多益善?
索引可以创建在一列或多列的组合上,也可以在数据库表的多个列上建立不同的索引,但这些列应该是经常作为查询条件的列.需要指出的是,并不是表上的索引越多越好,在数据库设计过程中,还是需要为表选择一些合适的索引。宁缺勿烂,这是建立索引时的一个具体选择。在理论上,虽然一个表可以设置无限的索引,但表中的索引越多,维护索引所需要的开销也就越大。每当数据表中记录有增加、删除、更新变化的时候,数据库系统都需要对所有索引进行更新。
索引的分类
索引可以分为三类:聚集索引(clustered index),非聚集索引,唯一性索引(unique index).根据索引字段组成又有复合索引的说法,复合索引可以是唯一索引也可以不是唯一索引.一个表上最多创建一个聚集索引和249个非聚集索引.
创建索引的条件
(1)为经常出现在关键字orderby、group by、distinct后面的字段,建立索引。
(2)在union等集合操作的结果集字段上,建立索引。
(3)为经常用作查询选择的字段,建立索引。
(4)在经常用作表连接的属性上,建立索引。
(5)考虑使用索引覆盖。对数据很少被更新的表,如果用户经常只查询其中的几个字段,可以考虑在这几个字段上建立索引,从而将表的扫描改变为索引的扫描。
创建索引的限制
(1)限制索引数目。
(2)唯一性太差的字段不适合单独创建索引;
(3)更新频繁的字段不适合创建索引;
(4)不会做为查询条件的字段不创建索引
posted on 2012-08-18 23:09
地心引力 阅读(1475)
评论(0) 编辑 收藏