一、什么是索引

索引是一种与表有关的数据库结构,它可以使对应于表的 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是所有有关性能和提高的性价比。

SQL Server 索引相关推荐

  1. SQL Server 索引结构及其使用(二)(转)

    SQL Server 索引结构及其使用(二) 作者:freedk 一.深入浅出理解索引结构 改善SQL语句 很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被 ...

  2. SQL Server 索引和表体系结构(聚集索引)

    原文:SQL Server 索引和表体系结构(聚集索引) 聚集索引 概述 关于索引和表体系结构的概念一直都是讨论比较多的话题,其中表的各种存储形式是讨论的重点,在各个网站上面也有很多关于这方面写的不错 ...

  3. SQL Server索引设计 第五篇

    SQL Server索引的设计主要考虑因素如下: 检查WHERE条件和连接条件列: 使用窄索引: 检查列的选择性: 检查列的数据类型: 考虑列顺序: 考虑索引类型(聚集索引OR非聚集索引): 一.检查 ...

  4. 【翻译】SQL Server索引进阶:第三级,聚集索引

    原文地址: Stairway to SQL Server Indexes: Level 3, Clustered Indexes 本文是SQL Server索引进阶系列(Stairway to SQL ...

  5. 【翻译】SQL Server索引进阶:第八级,唯一索引

    原文地址: Stairway to SQL Server Indexes: Level 8,Unique Indexes 本文是SQL Server索引进阶系列(Stairway to SQL Ser ...

  6. 详细讲解SQL Server索引的性能问题

    在良好的数据库设计基础上,能有效地使用索引是SQL Server取得高性能的基础,SQL Server采用基于代价的优化模型,它对每一个提交的有关表的查询,决定是否使用索引或用哪一个索引.因为查询执行 ...

  7. 【译】SQL Server索引进阶第八篇:唯一索引

    索引设计是数据库设计中比较重要的一个环节,对数据库的性能其中至关重要的作用,但是索引的设计却又不是那么容易的事情,性能也不是那么轻易就获取到的,很多的技术人员因为不恰当的创建索引,最后使得其效果适得其 ...

  8. SQL Server索引进阶第六篇:书签

    SQL Server索引进阶第六篇:书签 索引设计是数据库设计中比较重要的一个环节,对数据库的性能其中至关重要的作用,但是索引的设计却又不是那么容易的事情,性能也不是那么轻易就获取到的,很多的技术人员 ...

  9. [转]SQL Server 索引基础知识(2)----聚集索引,非聚集索引

    SQL Server 索引基础知识(2)----聚集索引,非聚集索引 [来自]http://blog.joycode.com/ghj/archive/2008/01/02/113291.aspx 由于 ...

  10. 翻译:SQL Server中的索引内部结构:到SQL Server索引级别10的阶梯。

    SQL Server中的索引内部结构:到SQL Server索引级别10的阶梯. 大卫•杜兰特2012/01/20 该系列 本文是楼梯系列的一部分:SQL Server索引的阶梯. 索引是数据库设计的 ...

最新文章

  1. 设置子节点相对于父节点水平竖直都居中
  2. php下dat函数e,为你总结一些php信息函数
  3. inject 响应式_vue 的 provide 和 inject 依赖注入与 $parent
  4. 由浅入深:自己动手开发模板引擎——解释型模板引擎
  5. matlab中怎么查看变量,Matlab 查看内存中的变量,清空屏幕等命令
  6. 【我评】——关于《中國化風格的淺析》
  7. 自带CA ,sha256 哈希签名,2048 位加密 脚本,通用
  8. 步进电机c语言驱动原理,连接PC的步进电机简单驱动电路
  9. 【Coverity】Jenkins 的 Synopsys Coverity plugin参数配置详解
  10. 基因组学---基因结构解剖
  11. 恶意流量监测开源系统:Maltrail
  12. 目标决定人生,制定属于你自己的目标
  13. 王者荣耀官网全皮肤超超超清原皮爬取!!!
  14. 百货的客单价-林财添
  15. 怎样抓CD音轨存为WMA文件
  16. MacBook Pro 突然无法开机的解决方法
  17. html整体垂直居中,实现HTML元素垂直居中的六种方法
  18. 高企认定评分标准有哪些?
  19. 12月17日云栖精选夜读 | 用PrettyPrinter,让Python输出更漂亮,你值得拥有...
  20. TeamViewer商用该个人

热门文章

  1. Uni-App - 实战《悦读》之多应用、多平台统一登录关系
  2. ios pdf自动换行方法(解决中文乱码问题)
  3. 八种基本数据类型的大小,以及他们的封装类
  4. 3手机版怎么换行_微信分身怎么弄,微信分身版如何设置,如何让手机登录两个微信...
  5. Adobe Illustrator 2020 24.2.3.521 中文版 — 矢量绘图软件
  6. 最近在某外卖平台上点了一份米粉加了份青菜
  7. android中usb if验证(carplay)
  8. 在EDIUS中使用调音台的方法
  9. conda deactivate报错CommandNotFoundError: Your shell has not been properly configured to use ‘conda de
  10. Android中View的工作流程之measure过程