索引

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

可用的索引类型

下表列出了 SQL Server 中可用的索引类型,并提供了指向其他信息的链接。

索引类型 说明 其他信息
哈希 借助于哈希索引,可通过内存中的哈希表来访问数据。 哈希索引的内存用量固定不变,是存储桶数量的函数。 在内存优化表上使用索引的准则

哈希索引设计指南
内存优化非聚集索引 对于内存优化的非聚集索引,内存使用量依赖于行计数以及索引键列的大小 在内存优化表上使用索引的准则

内存优化非聚集索引设计指南
群集 聚集索引基于聚集索引键按顺序排序和存储表或视图中的数据行。 聚集索引按 B 树索引结构实现,B 树索引结构支持基于聚集索引键值对行进行快速检索。 描述的聚集索引和非聚集索引

创建聚集索引

聚集索引设计指南
非聚集 既可以使用聚集索引来为表或视图定义非聚集索引,也可以根据堆来定义非聚集索引。 非聚集索引中的每个索引行都包含非聚集键值和行定位符。 此定位符指向聚集索引或堆中包含该键值的数据行。 索引中的行按索引键值的顺序存储,但是不保证数据行按任何特定顺序存储,除非对表创建聚集索引。 描述的聚集索引和非聚集索引

创建非聚集索引

非聚集索引设计指南
独特 唯一索引确保索引键不包含重复的值,因此,表或视图中的每一行在某种程度上是唯一的。

唯一性可以是聚集索引和非聚集索引的属性。
创建唯一索引

唯一索引设计指南
列存储 内存中列存储索引通过使用基于列的数据存储和基于列的查询处理来存储和管理数据。

列存储索引适合于主要执行大容量加载和只读查询的数据仓库工作负荷。 与传统面向行的存储方式相比,使用列存储索引存档可最多提高 10 倍查询性能 ,与使用非压缩数据大小相比,可提供多达 7 倍数据压缩率
列存储索引指南

列存储索引设计指南
带有包含列的索引 一种非聚集索引,它扩展后不仅包含键列,还包含非键列。 创建带有包含列的索引
计算列上的索引 从一个或多个其他列的值或某些确定的输入值派生的列上的索引。 计算列上的索引
Filtered 一种经过优化的非聚集索引,尤其适用于涵盖从定义完善的数据子集中选择数据的查询。 筛选索引使用筛选谓词对表中的部分行进行索引。 与全表索引相比,设计良好的筛选索引可以提高查询性能、减少索引维护开销并可降低索引存储开销。 创建筛选索引

筛选索引设计指南
空间 利用空间索引,可以更高效地对几何数据类型的列中的空间对象( 空间数据 )执行某些操作。 空间索引可减少需要应用开销相对较大的空间操作的对象数。 空间索引概述
XML xml 数据类型列中 XML 二进制大型对象 (BLOB) 的已拆分持久表示形式。 XML 索引 (SQL Server)
全文 一种特殊类型的基于标记的功能性索引,由针对 SQL Server 的 Microsoft 全文引擎生成和维护。 用于帮助在字符串数据中搜索复杂的词。 填充全文索引

注意

SQL Server 文档在提到索引时一般使用 B 树这个术语。 在行存储索引中,SQL Server 实现了 B+ 树。 这不适用于列存储索引或内存中数据存储。 有关详细信息,请参阅 SQL Server 以及 Azure SQL 索引体系结构和设计指南

后续步骤