zoukankan      html  css  js  c++  java
  • 概念帖——sqlserver索引

    作用

    任何索引的作用都是为了一个目标:尽可能缩减查找数据的范围,从而提升数据查询的效率。就好像字典有目录,在字典中查某一个字就不用翻完整本,速度当然会快很多,数据库也是同理。

    分类

    按大类分,SQL索引分为聚集索引(簇集)、非聚集索引(非簇集),SQL默认建立的是非聚集索引,一张表可以拥有多个非聚集索引但只能拥有一个聚集索引。

    聚集索引(簇集)

    聚集索引用到微软的平衡二叉树算法,查找数据时,首先找到大约二分之一的位置,如果要找的数据比找到的值小,就取到前四分之一,否则就取到后四分之三,以此类推。

    聚集索引是在物理上按序排列的,比如1后面必然是2。在进行范围查询或分组、排序查询的时候,只要找到一个目标值,后面的都跟着,会极大提升查询效率,所以在进行这些操作的时候建议使用聚集索引。又因为按序排列不可能有更多排序方法,所以一张表只能有一个聚集索引。

    非聚集索引(非簇集)

    非聚集索引是Sql默认的索引类型,它不像聚集索引那样按照物理排序查找数据,而是像字典中按偏旁部首查字一样。比如说我们要查询 氵字旁的字,江在第十页,河在第二十页,这样就快速定位了范围,避免了全表查询,同样可以提升查询速率。因为它不是基于物理排序,所以一张表可以拥有多个非聚集索引。

    区别

    聚集和非聚集的最大区别就是:索引的排列顺序和表记录排列顺序是否一致,如果不一致,就是非聚集了。

    简单来说,聚集是物理上连续存在,非聚集是逻辑上连续存在。

  • 相关阅读:
    linux 内核配置
    使用 git 下载linux 源码
    订阅 linux 邮件列表注意的问题
    使用反射创建一维数组和二维数组
    反射API
    反射机制
    集合案例--对ArrayList容器中的内容进行排序
    Collections
    TreeSet
    Set容器
  • 原文地址:https://www.cnblogs.com/muchengqingxin/p/13193158.html
Copyright © 2011-2022 走看看