详解SQL Server数据库索引
一、理解索引的结构
索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。 SQL Server 中数据存储的基本单位是页(Page)。数据库中的数据文件(.mdf 或 .ndf)分配的磁盘空间可以从逻辑上划分成页(从 0 到 n 连续编号)。磁盘 I/O 操作在页级执行。也就是说,SQL Server 每次读取或写入数据的最少数据单位是数据页。 下面我们先简单的了解一下索引的体系结构: 1. 聚集索引结构 在 SQL Server 中,索引是按 B 树结构进行组织的。 聚集索引单个分区中的结构: ![]() --建立UserAddDate聚集索引
聚集索引(Clustered Index)特点 聚集索引的叶节点就是实际的数据页 聚集索引中的排序顺序仅仅表示数据页链在逻辑上是有序的。而不是按照顺序物理的存储在磁盘上 行的物理位置和行在索引中的位置是相同的 每个表只能有一个聚集索引 聚集索引的平均大小大约为表大小的5%左右 2.非聚集索引结构 非聚集索引与聚集索引具有相同的 B 树结构,它们之间的显著差别在于以下两点: 1. 基础表的数据行不按非聚集键的顺序排序和存储。 2. 非聚集索引的叶层是由索引页而不是由数据页组成。 下图示意了单个分区中的非聚集索引结构: ![]() (编辑:滁州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |