MSSQL索引是SQL Server常见的性能优化技术,它是一种快速访问数据的必要工具。索引种类繁多,每一种的应用场景又都不尽相同,把握好查询优化的关键点是非常重要的。下面,让我们一起来谈谈MSSQL索引的种类与特点简介。
MSSQL索引分为普通索引、唯一索引、聚集索引、XML索引、全文检索索引、空间索引、内存优化索引和哈希索引。
普通索引,也叫neat index,是一种最常见的索引类型。它建立可对数据库表或视图中的特定列组建索引,以改善查询速度,这种索引不要求索引键是唯一的。其创建方式如下所示:
`CREATE INDEX index_name ON table_name(column_name)`
唯一索引,也叫Unique Index,旨在保护表中唯一索引键的完整性,其创建语法如下:
`CREATE UNIQUE INDEX index_name ON table_name(column_name)`
聚集索引(Clusteredindex)是一种存储结构,它将表中的记录按照Indexkey字段的大小顺序重新排列,从而构成一个索引树,存储的记录就按照索引树的结构排列起来,以提高读取性能。其创建语法如下:
`CREATE CLUSTERED INDEX index_name ON table_name(column_name)`
XML索引,利用索引快速解析和查找待处理XML文档。XML索引结构将保存在数据库中,从而提升XML文档的查询性能和程序查询性能。其创建语法如下:
`CREATE XML INDEX index_name ON collection_name(column_name) TYPE XML Index_type`
全文检索索引,可以检索任意字符文档,它允许数据库解析中文文本、Email、Word文档等任意文本文档,以提高查询结果准确性优化结果集。其创建语法如下:
`CREATE FULLTEXT INDEX index_name ON table_name(column_name)`
空间索引,可以索引字段内部包含的空间几何数据,空间索引有3种,分别是GIST、Rtree和Hierarchy/Grids索引,其创建语法方式如下:
`CREATE SPATIAL INDEX index_name ON table_name(column_name)`
内存优化索引,是新增的一种索引类型,旨在通过将生成的固定的页面放到内存中,提高查询的执行速度,提升查询效率。其创建语法如下:
`CREATE NONCLUSTERED INDEX index_name ON table_name(column_name) WITH (DROP_EXISTING=ON, MAXDOP=0, MEMORY_OPTIMIZED=ON)`
哈希索引,在“SQL Server 2016”中添加了一种新的“哈希索引”类型,可以极大的提高哈希计算和比对的效率,适用于比对大量记录,而不需要考虑空间。其创建语法如下:
`CREATE INDEX index_name ON table_name(column_name) WITH (DROP_EXISTING=ON, MAXDOP=1, HASH_INDEX=ON)`
以上仅仅是MSSQL索引种类与特点简介,但这只是查询性能优化的一部分,建立索引是必要,但并不是全部,懂得查询优化的全部知识和工具正是职业DBA才能的体现。