database-design - 是否允许更新事实表的一行?
问题描述
我很困惑。是推荐更新事实表中的一行,还是一般不这样做?
我读过它会减慢这个过程,因为更新比插入慢。其他人说这并不像某些人想象的那么糟糕。
是否有针对 2021 年最先进的 Ram/cpu/... 的建议?
解决方案
通常,事实记录是即时的,不需要更新,因此如果您经常需要更新事实记录,那么您的设计可能存在问题。
事实更新合理的两种主要情况是:
- 积累快照事实
- 数据修复,这显然是一种不常见的活动
从技术角度来看,更新比插入慢,但它们是否“太慢”取决于您的具体情况 - 尽管考虑到这些天可用的技术,我怀疑在 99% 的情况下是否必须进行更新是一个无法克服的问题。
如果确实需要定期更新事实表,则应确保它具有单个 PK 列,而不是由许多维度键组成的复合 PK,因为在更新中引用它比使用复合键快得多。
推荐阅读
- javascript - ng-select 没有发送字段的 id
- swift - 删除领域中的多个子对象时如何按祖父值过滤?
- firebase - 使用 json 映射器通过 firestore 检索和保存数据?
- xcode - Catalina 使 Xcode 模拟器冻结、滞后和工作缓慢
- postgresql - postgres 的内存分配是如何工作的?
- node.js - 在嵌套表中使用 dataloader-sequelize 显示特定列
- sql - 这是什么错误消息“关键字'VIEW'附近的语法不正确。”
- javascript - react-native 如何提取图像中最常用的颜色?
- shader - 在着色器中剪切和合并图像
- node.js - 恐怕我安装了一个骗局 npm 包:如何分析 Wasm?