一、什么是索引
索引是一种与表有关的数据库结构,它可以使对应于表的 SQL 语句执行得更快。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。对于数据库来说,索引是一个必选项,但对于现在的各种大型数据库来说,索引可以大大提高数据库的性能,以至于它变成了数据库不可缺少的一部分。
二、索引的优点
1、加快数据的检索速度。
2、保证数据记录的唯一性。
3、实现表与表之间的参照完整性。
4、在使用order by、group by子句进行数据检索时,利用索引可以减少排序和分组的时间。
5、通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
三、索引的缺点
1、创建索引和维护索引需要时间,这种时间随着数据量的增加而增加。
2、索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占物理空间,如果要建立聚簇索引,需要的空间更大。
3、当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这就降低了数据的维护速度。
四、索引类型
1、聚集索引
聚集索引是一种对磁盘上实际数据重新组织以按指定的一列或多列值排序。
2、非聚集索引
SQL Server默认情况下建立的索引是非聚集索引,它不重新组织表中的数据,而是对每一行存储索引列值并用一个指针指向数据所在的页面。
3、主XML索引
主 XML 索引对 XML 列中 XML 实例内的所有标记、值和路径进行索引。
4、辅助XML索引
为了增强搜索性能,可以创建辅助 XML 索引。 必须有了主 XML 索引才能创建辅助索引。
5、空间索引
空间索引是指依据空间对象的位置和形状或空间对象之间的某种空间关系按一定的顺序排列的一种数据结构,其中包含空间对象的概要信息,如对象的标识、外接矩形及指向空间对象实体的指针。
6、非聚集ColumnStore索引
ColumnStore是所有有关性能和提高的性价比。