数据库对象--索引

来源:互联网 发布:知乎经典问答 感人 编辑:程序博客网 时间:2024/06/07 03:24

什么是索引?

    提起索引,应该不会感到陌生,若说它就是目录,大概都知道了,数据库的索引与书的目录很相似,都叫index.书的内容相当于数据库表中的数据,书的目录通过页码指向书的内容,同样,索引也记录了表中的关键值,提供了指向表中行的指针.书的目录使读者很快的找到想看的内容,而不必翻看书的每一页,索引使得数据库应用程序能够不扫描全表而找到想要的数据.

 

索引是不是多多益善?

    索引可以创建在一列或多列的组合上,也可以在数据库表的多个列上建立不同的索引,但这些列应该是经常作为查询条件的列.需要指出的是,并不是表上的索引越多越好,在数据库设计过程中,还是需要为表选择一些合适的索引。宁缺勿烂,这是建立索引时的一个具体选择。在理论上,虽然一个表可以设置无限的索引,表中的索引越多,维护索引所需要的开销也就越大。每当数据表中记录有增加、删除、更新变化的时候,数据库系统都需要对所有索引进行更新。

 

索引的分类

    索引可以分为三类:

    聚集索引(clustered index),

    非聚集索引,

    唯一性索引(unique index).

    根据索引字段组成又有复合索引的说法,复合索引可以是唯一索引也可以不是唯一索引.一个表上最多创建一个聚集索引和249个非聚集索引.

 

创建索引的条件

(1)为经常出现在关键字orderby、group by、distinct后面的字段,建立索引。

(2)在union等集合操作的结果集字段上,建立索引。

(3)为经常用作查询选择的字段,建立索引。

(4)在经常用作表连接的属性上,建立索引。

(5)考虑使用索引覆盖。对数据很少被更新的表,如果用户经常只查询其中的几个字段,可以考虑在这几个字段上建立索引,从而将表的扫描改变为索引的扫描。

 

创建索引的限制

(1)限制索引数目。

 (2)唯一性太差的字段不适合单独创建索引;

 (3)更新频繁的字段不适合创建索引;

 (4)不会做为查询条件的字段不创建索引。

原创粉丝点击