在另一个表中复制数据以获得性能增益?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (27)

我正在为我正在构建的产品设计数据库架构。在开始在MySQL中创建所有内容之前,我只是在Excel文件中绘制所有内容。

目前,我有两个几乎相同的表。

TABLE A 包含每个用户的每个数据点的最新值。

TABLE B 包含每个用户的每个数据点的每日记录。

我创建TABLE A,而不是完全依赖于我的理由TABLE B是,TABLE B每天的行数会随着我拥有的客户数量而增长。例如,假设我有20,000名客户,TABLE B每天将增加20,000行。因此,通过创建TABLE A,我将只需搜索20,000条记录,以便为每个用户查找每个数据点的最新值,因为我将每天更新这些值; 而对于TABLE B,我必须为每个用户搜索最近插入的行数越来越多。

这是可接受的还是良好的做法?

或者我应该忘记TABLE A减少数据库中的“膨胀”?

提问于
用户回答回答于

这不是正确的方法。你基本上有两个合理的选择:

  1. 使用历史记录表上的索引来访问最近一天的记录。
  2. 使用表分区将每一天存储在单独的分区中。

可以管理两个表,但这很麻烦,并且有内置方法来处理这种情况。

扫码关注云+社区

领取腾讯云代金券