索引
索引简介
索引就是数据表中的数据和相应存储位置的列表。利用索引可以提高再表或视图中查找数据的速度。
索引的分类
数据库中的索引主要分为两类:聚集索引和非聚集索引。Microsoft SQL Server 2008还提供了其它类型的索引,如唯一索引,索引视图,包含性列索引,全文索引,XML索引等。
1.聚集索引
聚集索引是指表中数据行的物理存储顺序与索引顺序完全相同。
2.非聚集索引
非聚集索引不改变表中的数据行的物理存储位置,数据与所有分开存储,通过索引指向的地址与表中的数据发生关系。
聚集索引与非聚集索引的取别
聚集索引 | 非聚集索引 |
---|---|
每个表只允许有一个聚集索引 | 最多可以有249个非聚集索引 |
物理地重排表中的数据以符合索引约束 | 创建一个键值指向数据再数据页中的位置 |
用于经常查找数据的列 | 用于从中查找单个值的列 |
3.其他类型的索引
- 唯一索引:如果希望索引键都不相同,可以创建唯一索引。聚集索引和非聚集索引都可以是唯一索引。
- 包含性列索引:在Microsoft SQL Server 2008系统中,索引列的最大数量是16个,索引列字节总数的最高值是900。如果当多个列的字节总数大于900,且又想将这些列都包含在索引中时,可以使用包含性列索引。
- 视图索引:如果希望提高视图的查询效率,可以将视图的索引物理化,也就是说将结果集永久储存在索引中,可以创建视图索引。
- XML 索引:与XML数据关联的索引形式,是XML二进制BLOB的已拆分持久表示形式。
- 全文索引:一种特殊类型的基于标记的功能性索引,由SQL Server全文引擎(MSFTESQL)服务创建和维护,用于帮助在字符串中搜索复杂的词。
使用create index 语句创建索引
基本语法:
create [ unique ]
[clustered | nonclustered]
index index_name
on table_name (colume_name)
[where fillfactor=x]
- unique :创建唯一索引,可选项
- clustered :创建聚集索引,可选项
- nonclustered: 创建非聚集索引
- index_name :创建的索引名
- table_name:数据表名,这里也可以是视图名。
- fillfactor:设置填充因子的大小。指定一个0到100之间的值,该值指示索引页填满的空间所占百分比。
视图
索引简介
视图是一个虚拟的数据表。该数据表中的数据记录又一条查询语句的查询结束得到。
使用T-SQL的create view 语句创建视图,基本语法:
create view view_name
as
<select 语句>
go
其中,view_name 是我们要创建的视图名,<select 语句> 是创建视图的查询名。
查询视图:
select * from view_name
注:以上只是使用T-SQL创建 ,在SQL Server management Studio 中创建忽略。T-SQL创建之前需要进行判断。