• 聚集索引和非聚集索引


    SQL Sever索引类型有:唯一索引,主键索引,聚集索引,非聚集索引。

    聚集索引:数据行的物理顺序与列值(一般时主键的那一列)的逻辑顺序相同,一个表中只能拥有一个聚集索引。

    创建聚集索引,系统会自动创建一个隐含列作为表的聚集索引

    添加聚集索引  create clustered index clustered_index on table_name(colum_name)

    非聚集索引:该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同,一个表中可以拥有多个非聚集索引,除聚集索引外,都是非聚集索引,非聚集索引的结构顺序与实际存放的顺序不一定一致。

    非聚集索引叶节点仍然是索引节点,只是有一个指针指向对应的数据块,此如果使用非聚集索引查询,而查询列中包含了其他该索引没有覆盖的列,那么他还要进行第二次的查询,查询节点上对应的数据行的数据。

    在sql server 里面会对查询自动优化,选择适合的索引,数据量不大的情况下,sql server 很有可能不会使用非聚集索引进行查询,而使用聚集索引查询,即便需要扫描整个聚集索引,效率也比使用非聚集索引效率要高。

    解决非聚集索引二次查询的问题:复合索引

    四.总结与使用心得

    1. 使用聚集索引的查询效率要比非聚集索引的效率要高,但是如果需要频繁去改变聚集索引的值,写入性能并不高,因为需要移动对应数据的物理位置。
    2. 非聚集索引在查询的时候可以的话就避免二次查询,这样性能会大幅提升。
    3. 不是所有的表都适合建立索引,只有数据量大表才适合建立索引,且建立在选择性高的列上面性能会更好。
    111111
  • 相关阅读:
    常见的灰度发布系统规则
    golang中的路由分组
    艾森豪威尔矩阵
    列文定理
    吃狗粮定理
    mysql事务 锁
    mysql中explain优化分析
    mysql hash索引优化
    各种浏览器内核介绍
    浏览器 兼容性问题总结
  • 原文地址:https://www.cnblogs.com/whl4835349/p/9244595.html
Copyright © 2020-2023  润新知