读书人

数据库对象-目录

发布时间: 2012-09-28 00:03:35 作者: rapoo

数据库对象--索引

什么是索引?

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

索引是不是多多益善?

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

索引的分类

索引可以分为三类:聚集索引(clustered index),非聚集索引,唯一性索引(unique index).根据索引字段组成又有复合索引的说法,复合索引可以是唯一索引也可以不是唯一索引.一个表上最多创建一个聚集索引和249个非聚集索引.

创建索引的条件

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

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

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

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

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

创建索引的限制

(1)限制索引数目。

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

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

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

4楼lishehe昨天 15:43
适当的来点例子会更深刻,呵呵,加油
Re: zhuanzhe117昨天 23:06
回复lishehen恩,谢谢指点了
3楼zhanglianhai555昨天 20:05
比我当写的那篇关于“索引”的博客简练!!
Re: zhuanzhe117昨天 10:59
回复zhanglianhai555n本来想画一张图的,又觉得这些知识点还是用文字阐述一下比较妥当.
2楼dandanzmc昨天 19:18
嘻嘻,加油
Re: zhuanzhe117昨天 20:05
回复dandanzmcn恩,多多指教哦.
1楼wlccomeon昨天 19:10
总结的不错,回头看看更好啊!语言组织的不错,加油!

读书人网 >其他数据库

热点推荐