小编典典

高效地存储7.300.000.000行

sql

您将如何解决以下存储和检索问题?

每天(每年365天)将添加大约2.000.000行,每行包含以下信息:

  • id(唯一的行标识符)
  • entity_id (取值介于1到2.000.000(含)之间
  • date_id(每天增加一次-取值范围为1到3.650(十年:1 * 365 * 10))
  • value_1(取值范围在1到1.000.000之间(包括1和1.000.000之间)
  • value_2(取值范围在1到1.000.000之间(包括1和1.000.000之间)

与date_id结合使用的entity_id是唯一的。因此,每个实体和日期最多可以将一行添加到表中。数据库必须能够保存10年的每日数据(7.300.000.000行(3.650 * 2.000.000))。

上面描述的是写模式。读取模式很简单:所有查询都将在特定的object_id上进行。即检索描述entity_id = 12345的所有行。

不需要事务支持,但是存储解决方案必须是开源的。理想情况下,我想使用MySQL,但我愿意征求建议。

现在-您将如何解决所描述的问题?

更新: 我被要求详细说明读写模式。每天将对表进行一次写入,然后一次性添加新的2M条目。读取将连续进行,每秒读取一次。


阅读 174

收藏
2021-05-05

共1个答案

小编典典

使用分区。使用读取模式,您需要按entity_id哈希分区。

2021-05-05