加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

详解SQL Server数据库索引

发布时间:2016-09-10 11:13:46 所属栏目:MsSql教程 来源:站长网
导读:一、理解索引的结构 索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。
一、理解索引的结构

索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。

SQL Server 中数据存储的基本单位是页(Page)。数据库中的数据文件(.mdf 或 .ndf)分配的磁盘空间可以从逻辑上划分成页(从 0 到 n 连续编号)。磁盘 I/O 操作在页级执行。也就是说,SQL Server 每次读取或写入数据的最少数据单位是数据页。

下面我们先简单的了解一下索引的体系结构:

1. 聚集索引结构

在 SQL Server 中,索引是按 B 树结构进行组织的。

聚集索引单个分区中的结构:

详解SQL Server数据库索引

--建立UserAddDate聚集索引

CREATE CLUSTERED INDEX [IX_UserAddDate] ON [ASPNet_zSurvey].[ZS_User]
(
[UserAddDate] ASC
)

聚集索引(Clustered Index)特点

聚集索引的叶节点就是实际的数据页

聚集索引中的排序顺序仅仅表示数据页链在逻辑上是有序的。而不是按照顺序物理的存储在磁盘上

行的物理位置和行在索引中的位置是相同的

每个表只能有一个聚集索引

聚集索引的平均大小大约为表大小的5%左右

2.非聚集索引结构

非聚集索引与聚集索引具有相同的 B 树结构,它们之间的显著差别在于以下两点:

1. 基础表的数据行不按非聚集键的顺序排序和存储。

2. 非聚集索引的叶层是由索引页而不是由数据页组成。

下图示意了单个分区中的非聚集索引结构:

详解SQL Server数据库索引

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读