当前位置:文档之家› SQL Server基础:索引

SQL Server基础:索引

原文出处: 阿赫瓦里 索引用于快速找出在某个列中有某一特定值的行,不使用索引,数据库必须从第一条记录开始读完整个表,直到找出相关的行。表越大,查询数据所花费的时间越多,如果表中查询的列有一个索引,数据库能快速到达一个位置去搜索数据,本篇主要介绍与索引相关的内容,包括索引的含义和特点,索引的分类,索引的设计原则以及如何创建和删除索引。
一:索引的含义和特点
索引是一个单独的,存储在磁盘上的数据结构,它们包含则对数据表里所有记录的引用指针,使用索引用于快速找出在某个或多个列中有某一特定值的行,对相关列使用索引是降低查询操作时间的最佳途径。索引包含由表或视图中的一列或多列生成的键。
例如:数据库中有20000条记录,现在要执行这样一个查询:SELECT * FROM tableName WHERE num=10000。如果没有索引,必须遍历整个表,直到num=10000的这一行为止;如果在num列上创建索引,SQL Server不需要任何扫描,直接在索引里面找10000,就可以得知这一行的位置。可见,索引的建立可以加快数据的查询速度。
索引的优点主要有以下几条:
(1).通过创建唯一索引,可以保证数据库表的每一行数据的唯一性。
(2).可以大大加快数据的查询速度,这也是创建索引的最主要的原因。
(3).实现数据的参照完整性,可以速表和表之间的连接。
(4).在使用分组和排序子句进行查询时,也可以显著减少查询中分组和排序的时间。
同时,增加索引也有不利的一面:
(1).创建索引和维护索引要耗费时间,并且随着数据量的增加所耗费的时间也会增加。
(2).索引需要占磁盘空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果有大量的索引,索引文件可能比数据文件更快达到做大文件尺寸。
(3).当对表中的数据进行增加,删除和修改的时候,索引也要动态地维护,这样就就降低了数据的维护速度。
回到顶部
二:索引的分类
不同数据库中提供了不同的索引类型,SQL Server中的索引有两种:聚集索引和非聚集索引。它们的区别是在物理数据的存储方式上。
1.聚集索引
聚集索引基于数据行的键值,在表内排序和存储这些数据行。每个表只能有一个聚集索引,因为数据行本身只能按一个顺序存储。
(1).每个表只能有一个聚集索引;
(2). 表中的物理顺序和索引中行的物理顺序是相同的,创建任何非聚集索引之前要首先创建聚集索引,这是因为非聚集索引改变了表中行的物理顺序;
(3).关键值的唯一性使用UNIQUE关键字或者由内部的唯一标识符明确维护。
(4).在索引的创建过程中,SQL Server临时使用当前数据库的磁

相关主题
文本预览
相关文档 最新文档