zoukankan      html  css  js  c++  java
  • 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的顺序一致,但数据不一定依次存放在依次递增的数据页上(逻辑碎片)

  • 相关阅读:
    玩转html2canvas以及常见问题解决
    docker磁盘空间清理办法
    统计行数、文件夹个数、文件个数的相关shell命令
    golang将字符串进行md5加密
    思考如何将自动化测试加入持续集成中
    锋利的NodeJS之NodeJS多线程
    成年人的必修课:抗压和自驱力
    MacOS下PHP7.1升级到PHP7.4.15
    php性能分析利器:xhprof
    后Low Code时代:聚焦和突破
  • 原文地址:https://www.cnblogs.com/TeyGao/p/3524080.html
Copyright © 2011-2022 走看看