sql - 更新用于 SQL 报告的表中的批量数据的最佳实践
问题描述
我创建了一个用于报告目的的表,我在其中存储了大约 50 列的数据,并且在某个时间间隔,我的调度程序执行一个服务,该服务处理其他表并在我的平面表中填充数据。
目前我正在该表中删除和插入数据但我想知道这是否是一种好习惯,或者我应该检查每一行中的每一列并在发现任何更改时更新它,如果数据不存在则插入新记录。
仅供参考,重新插入的总行数为 100k+。
解决方案
这是一个非常广泛的问题,只有通过访问您的环境和讨论您的个人需求才能真正得到回答。显然,这是不可能通过 Stack Overflow 实现的。
这意味着您需要自己做出决定。
为了能够做到这一点,您需要了解的信息是可用的表更新类型以及如何实现它们,通常称为缓慢变化的维度。有几种不同的类型,每种都有自己的优点、缺点和最佳用例。
一旦您了解了如何让您的数据根据需要进行增量更新,您就可以查看实现这一点所需的额外处理逻辑的原因以及是否真的值得。您的数十万行数据的数据集并不大,因此可能还不需要这种级别的处理,尽管该评估将取决于您当前流程的复杂性和耗时以及您必须运行它多长时间。
推荐阅读
- c++ - Rcpp,赋值错误,SEXPREC 的含义*
- javascript - Puppeteer 等待页面完全加载后再继续
- c# - 如何使用 XmlDocument 解析需要带有非法字符标签的 XML 文档?
- javascript - 我可以通过与侧边栏中的按钮相关联的功能来操作基于 html 的 Google Apps 脚本侧边栏中的文本框吗?
- apache-nifi - 如何重命名 NiFi 属性
- mysql - MySQL db 报告 prod 和 local 上表的总大小有很大不同
- javascript - 启用将 ImageData 从 CanvasRenderingContext2D 缩放到另一个
- python - TypeError:对象函数不能在等待表达式中使用
- vue.js - 父绑定布尔但子接收数字
- python - 如何解决 buildozer md5sum 错误?