gpt4 book ai didi

mysql - 一个 SQL 表用于所有回归记录还是多个表?

转载 作者:行者123 更新时间:2023-11-29 13:17:56 25 4
gpt4 key购买 nike

我正在移动一个设计流程,该流程包括运行由在服务器场上运行的多个模拟组成的回归,从使用 NFS 上的文件改为使用 MySQL 数据库以获得额外的速度。 (我们有一个关联的流程,只有这种优化,所以我们知道它可以工作)。

我们可能会在一年内运行 1000 次回归;每个大约 100K 模拟,每个模拟存储其结果/运行时/...的商场记录

在当前流程中,每个回归结果都存储在单独的 (CSV) 文件中。目前,数据库中的每个回归都存储在同一个回归表中,并且每个回归的模拟的所有模拟结果都存储在一个 sim_results 表中。

为了最大限度地减少当前流程的变化,我想考虑为每个回归创建单独的 sim_results 表,但是

  1. 我不知道如何从单个回归记录(以 ID 作为主索引)创建单独的表。
  2. 我不知道我是否应该这样做——更好地模仿电流;或者使用一个 sim_results 表,因为它可能是“SQL 方式”。

感谢帮助!

最佳答案

SQL 方式通常是您不会创建多个表,每个表对应于不同的一系列行,除非您出于在多个节点之间分片数据的目的而分解这些表(例如,水平分片)。水平分片通常是一项复杂的任务,有很多注意事项。

但总的来说,您设计架构的方式与您需要适应的用例有关。特别是如果您想同时对多个模拟运行查询,则可以将所有数据存储在一系列表中。如果您确实没有任何查询计划,那么您可能一开始就不需要关系数据库。

我不确定您的数据的格式,但“分析”大量数据的一种常见模式设计是 star schema 。维基百科页面值得一读。

如果您要创建许多表,SQLAlchemy 的 Table() 构造是一个 Python 数据结构,您可以通过编程方式构建它。构建一个函数,根据需要创建新的 Table() 对象,然后对它们调用 create() 。我曾与一些公司合作过,这些公司必须努力工作才能摆脱这种特殊的设计,所以我真的会考虑这个方案是否值得。正确配置的关系表可以毫无问题地存储数十亿行。

关于mysql - 一个 SQL 表用于所有回归记录还是多个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21231171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com