一尘不染

在关系数据库中存储科学数据

sql

我想将分层的二维科学数据集存储在关系数据库(MySQL或SQLite)中。每个数据集都包含一个数值数据表,其中包含任意数量的列。另外,每个数据集可以具有一个或多个与其表的给定行关联的相同类型的子级。每个数据集通常具有1至100列和1至1.000.000行。数据库应该能够处理许多数据集(>
1000),并且数据的读/写应该相当快。

存储此类数据的最佳数据库模式将是什么?是否有一个“主”表,其中包含各个数据集的名称,ID和关系,并且每个数据集还有一个包含数值的表,这是否合理?


阅读 175

收藏
2021-03-08

共1个答案

一尘不染

是否有一个“主”表,其中包含各个数据集的名称,ID和关系,并且每个数据集还有一个包含数值的表,这是否合理?

我就是那样做的。

我不确定“任意列”是如何工作的,因为数据通常不会那样工作。无论如何,听起来像将其存储为row,col,val可能效果很好。

不过,老实说,如果您不需要搜索它(最大,最小等),最好使用某种平面文件。

一种可能有趣的替代设置是使用SQLite,每个数据集都有一个单独的数据库文件,外加一个主文件。

无论您选择哪种方式,其效果如何都取决于您将如何处理数据。

2021-03-08