• 概念帖——sqlserver索引


    作用

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

    分类

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

    聚集索引(簇集)

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

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

    非聚集索引(非簇集)

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

    区别

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

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

  • 相关阅读:
    git注册和基本命令
    thinkphp概述2
    thinkphp概述
    PHP基础知识总结
    phpmyadmin教程
    开发环境wamp3.06 + Zend studio 12 调试配置
    PHP标记风格,编码规范
    PHP开发工具 zend studio
    php与ajax技术
    可变参模板template
  • 原文地址:https://www.cnblogs.com/muchengqingxin/p/13193158.html
Copyright © 2020-2023  润新知