所以,我有以下问题:
我正在做一些时间序列分析,我有一个类似 10^7 身份或 ids 的模型(例如一个国家的每部手机)。
每个 Id 都有关联的事件(例如天),最多可以跨越 10^4 个事件。对于每个事件和身份,都有不同的“属性”(例如电话 X 在那天 Y 发送的消息数量)。
我正在尝试设计一个 mysql 数据库来处理如此大量的信息。我主要感兴趣的是查询时间分布(例如,特定日期的消息数量;或 X 天和 Y 天之间的活动电话数量)。
我的第一个想法是为每个不同的值使用一个表:在每个表上,行是一个标识,每一列都有一天。如果有 N 个不同的属性,那么我将有 N 个不同的表。这带来了每个表上有 10^4 列的问题;我不确定这是一个好的/标准/有效的做法。
我的第二个虽然是有一个 10^7*10^4 行的单表(所谓的多对多关系):第一列有一个主键,第二个是身份的 id,第三个是事件的日期,和下一列是该特定日期该身份的相关属性。
我问你有什么建议:“出于历史原因”我已经创建了一个非 mysql 数据库(有很多很多 .txt 文件),在尝试迁移它之前,我想知道它是否真的值得。正如您可能理解的那样,目前我的 *.txt 数据库中的查询可能会尽可能昂贵:我通常必须打开每个 .txt 对查询执行的操作。对于每个查询,这相当于 10-30m。因此,任何低于该限制的建议实际上对我的问题都非常有用。
谢谢你的时间,豪尔赫