如何高效更新数据库表1.2亿条记录?
Dec 31, 2024 pm 05:57 PM优化海量记录更新操作
问题:
使用即使运行了多次,简单的 UPDATE 语句也失败了
解决方案:
不要更新现有表,而是使用 SELECT 语句用所需的值填充新表。这种方法显着提高了性能并避免了与直接更新相关的瓶颈。
非简单情况的步骤:
-
创建一个具有所需的新表结构:
- 使用相同的聚集索引、标识列、计算列和要更新的新列在不同架构下重新创建原始表。
- 排除触发器、外键约束和其他非必要的
-
测试插入操作:
- 将一小部分行插入新表中以确保正确性。
-
准备批量插入:
- 将数据库设置为批量日志或简单恢复模式。
- 截断新的
-
执行批量插入:
- 使用带有 TABLOCK 的单个 INSERT 语句提示。
-
验证数据完整性:
- 检查新表以确认更新成功。
-
重新创建约束和触发器:
- 在新表中重新创建所有非聚集约束、索引和触发器,同时在单独的批次中维护架构。
-
切换表:
- 将原始表移至备份架构,并将新表移至所需架构。
- 执行任何必要的调整操作以协调发生的任何更改更新过程中。
以上是如何高效更新数据库表1.2亿条记录?的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前
By 尊渡假赌尊渡假赌尊渡假赌
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林

热门文章
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前
By 尊渡假赌尊渡假赌尊渡假赌
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林

热门文章标签

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在 Linux 中运行 MySQl(有/没有带有 phpmyadmin 的 podman 容器)
