gpt4 book ai didi

mysql - 科学实验时间序列数据库

转载 作者:行者123 更新时间:2023-11-30 23:29:00 27 4
gpt4 key购买 nike

我必须使用时间序列进行科学实验。

我打算使用MySQL作为数据存储平台。

我正在考虑使用以下一组表来存储数据:

Table1 --> ts_id(存放时序索引,我会处理好几个时序)

Table2 --> ts_id, obs_date, value (应该由{ts_idx索引,obs_date})

因为会有很多时间序列(数百个),每个时间序列可能有数百万个观察值,表 2 可能会变得非常大。

问题是我必须多次重复这个实验,所以我不确定什么是最好的方法:

  1. 向表中添加一个 experiment_id 并允许它们增长得更多。
  2. 为每个实验创建一个单独的数据库。

如果选项 2 更好(我个人认为如此),那么最合乎逻辑的方法是什么?我有许多不同的实验要进行,每个实验都需要重复。如果我为每个复制创建一个不同的数据库,我很快就会得到数百个数据库。有没有一种方法可以逻辑地组织它们,比如每个复制作为其实验master database的“子数据库”?

最佳答案

您可能希望首先考虑需要如何分析数据。

假设您的分析需要了解实验名称、实验副本编号、内部重复(例如,在每个时间点,每个处理测量 3 个“相同”的受试者)。所以你的数据库模式可能是这样的:

experiments

exp_id int unsigned not null auto_increment primary key,
exp_name varchar(45)
other fields that any kind of experiment can have

replicates

rep_id int unsigned not null auto_increment primary key,
exp_id int unsigned not null foreign key to experiments
other fields that any kind of experiment replica can have

subjects

subject_id int unsigned not null auto_increment primary key,
subject_name varchar(45),
other fields that any kind of subject can have

observations

ob_id int unsigned not null auto_increment primary key,
rep_id int unsigned not null foreign key to replicates,
subject_id int unsigned not null foreign key to subjects,
ob_time timestamp
other fields to hold the measurements you make at each timepoint

如果您有内部复制,您将需要另一个表来保存内部复制/主题关系。

不用担心您的数百万行。只要您明智地建立索引,就不会出现任何问题。但如果情况变得更糟,您始终可以按 rep_id 对观察表(可能是最大的)进行分区。

关于mysql - 科学实验时间序列数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11688017/

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