• INDEX--关于索引的琐碎


    --=========================================================
    更新时的操作
    1>更新时有两种方式,一种是在原来的位置更新,另外一种是移除删除再插入。
    2>无论采用何种方式更新数据,在触发器中都能使用DELETED和INSERTED表来获取更新前和更新后数据。


    --=========================================================
    --8亿数据创建非聚集索引时间
    数据表中数据:873476300
    建立索引耗时:41分39秒
    索引键:BIGINT+DATETIME+INT
    服务器配置:8核32G内存 7块SAS硬盘做成的RAID5,内存资源不足


    --=========================================================
    堆表和聚簇表测试
    INSERT: 当数据库文件单次增长较小时,聚簇表插入效率会相对高,但当当数据库文件单次增长较大时,数据文件不需要频繁增长,堆表的插入效率略高于聚簇表。
    SELECT/UPDATE/DELETE:聚簇表性能高于堆表(聚簇索引被使用时)
    表无须额外增加过多空间来存放聚簇索引,只需少量空间存放非叶子节点

    --=========================================================
    DML操作在聚簇索引和非聚簇索引上的顺序
    测试结论:
    1>在插入数据时,先插入聚簇索引,再插入非聚簇索引
    2>在更新数据时,先更新聚簇索引,再更新非聚簇索引
    3>在删除数据时,先将非聚簇索引上数据MARK AS GHOST,然后再将聚簇索引上数据MARK AS GHOST,再删除聚簇索引上数据,最后移除非聚簇索引上数据

    --=========================================================
    数据的物理顺序和聚簇索引的顺序完全一致吗?
    结论:在同一数据页上,数据的顺序和Slot的顺序一致,但数据不一定依次存放在依次递增的数据页上(逻辑碎片)

  • 相关阅读:
    CRL快速开发框架系列教程二(基于Lambda表达式查询)
    CRL快速开发框架系列教程一(Code First数据表不需再关心)
    非关系型数据库来了,CRL快速开发框架升级到版本4
    CRL快速开发框架开源完全转到Github
    火车订票系统的高并发解决方案
    用wordpress搭建个人博客
    centos/redhat安装mysql
    vue之nextTick全面解析
    微信公众号开发笔记3-sdk接入(nodejs)
    微信公众号开发笔记2(nodejs)
  • 原文地址:https://www.cnblogs.com/TeyGao/p/3524080.html
Copyright © 2020-2023  润新知