下表列出了 SQL Server 中可用的索引类型,并提供指向其他信息的链接。
索引类型 | DESCRIPTION | 其他信息 |
---|---|---|
哈希 | 通过哈希索引,可通过内存中哈希表访问数据。 哈希索引使用固定的内存量,这与桶数量成函数关系。 | 对 Memory-Optimized 表使用索引的准则 |
内存优化的非聚集索引 | 对于内存优化的非聚集索引,内存消耗是行计数和索引键列的大小函数 | 对 Memory-Optimized 表使用索引的准则 |
集群 | 聚集索引根据聚集索引键按顺序对表或视图的数据行进行排序和存储。 聚集索引作为 B 树索引结构实现,它支持根据聚集索引键值快速检索基于该键值的行。 |
描述的聚集索引和非聚集索引 创建聚集索引 |
非聚集 | 可以在具有聚集索引的表或视图上定义非聚集索引,也可以在堆上定义。 非聚集索引中的每个索引行都包含非聚集键值和行定位符。 此定位符指向聚集索引或堆中包含该键值的数据行。 索引中的行以索引键值的顺序存储,但除非在表中创建了聚集索引,否则不保证数据行按任何特定顺序排列。 |
描述的聚集索引和非聚集索引 创建非聚集索引 |
唯一 | 唯一索引可确保索引键不包含重复值,因此表或视图中的每一行都以某种方式是唯一的。 唯一性可以是聚集索引和非聚集索引的属性。 |
创建唯一索引 |
列存储 | 内存中列存储索引使用基于列的数据存储和基于列的查询处理来存储和管理数据。 列存储索引适用于主要执行大容量加载和只读查询的数据仓库工作负荷。 使用列存储索引在传统的面向行的存储上实现高达 10 倍的查询性能 提升,对未压缩的数据大小进行高达 7 倍的数据压缩 。 |
列存储索引的描述 使用非聚集列存储索引 使用聚集列存储索引 |
包含列的索引 | 一个非聚集索引,扩展为不仅包括键列,还包括非键列。 | 创建包含列的索引 |
计算列上的索引 | 从一个或多个其他列的值或某些确定性输入派生而来的列的索引。 | 计算列上的索引 |
过滤 | 优化的非聚集索引,特别适合涵盖从定义完善的数据子集中进行选择的查询。 它使用过滤谓词对表中的部分行进行索引。 设计良好的筛选索引可以提高查询性能、降低索引维护成本,以及与全表索引相比,降低索引存储成本。 | 创建筛选索引 |
空间 | 空间索引可以更有效地对几何数据类型列中的空间对象(空间数据)执行某些操作。 空间索引可减少需要应用相对昂贵的空间操作的对象数。 | 空间索引概述 |
XML | 数据类型列中 XML 二进制大型对象(BLOB) xml 的切碎和持久表示形式。 |
XML 索引 (SQL Server) |
全文 | 由 sql Server 的 Microsoft Full-Text 引擎构建和维护的基于令牌的特殊功能索引。 它为字符串数据中的复杂单词搜索提供了有效的支持。 | 填充全文索引 |