Mysql 我应该有一个数据库还是多个?
我想对一台设备进行多次测试并记录结果 每次运行将包括Mysql 我应该有一个数据库还是多个?,mysql,database-design,Mysql,Database Design,我想对一台设备进行多次测试并记录结果 每次运行将包括 开始时间戳 结束时间戳 用户提供的测试运行的文本描述 以1秒为间隔从各种测量设备上采集的测量数据的集合 问:我曾想过为每个测试运行创建一个数据库(因为度量表将有多个特定于该运行的行,否则我将不得不添加一个额外的列作为索引) 我使用多个数据库是正确的,还是有更好的方法使用单个数据库?如果你不得不问,答案总是一个 如果您需要不止一个数据库,您就不会问这个问题,因为您已经超越了需要多个数据库的想法,而知道自己需要多个数据库 您需要重点关注的是创
- 开始时间戳
- 结束时间戳
- 用户提供的测试运行的文本描述
- 以1秒为间隔从各种测量设备上采集的测量数据的集合
我使用多个数据库是正确的,还是有更好的方法使用单个数据库?如果你不得不问,答案总是一个 如果您需要不止一个数据库,您就不会问这个问题,因为您已经超越了需要多个数据库的想法,而知道自己需要多个数据库
您需要重点关注的是创建一个简单的模式,该模式可以处理您想要的内容,并正确索引,以便快速查询。使用一个数据库。在测量值表中,添加一个带有
run\u id
的字段,指定特定的运行
下面的示例-根据您的需要,您的字段类型可能会有所不同
CREATE TABLE IF NOT EXISTS measurements
(
measurement_id INT NOT NULL AUTO_INCREMENT,
run_id INT,
start_time INT,
stop_time INT,
description VARCHAR(255),
PRIMARY KEY (measurement_id)
);
CREATE TABLE IF NOT EXISTS runs
(
run_id INT NOT NULL AUTO_INCREMENT,
description VARCHAR(255),
PRIMARY KEY (run_id)
);
如果您正在寻找建议,则需要使用单个数据库。就易用性而言,它将帮助您实现可扩展性和维护。使用多个DBs/Schema将在稍后阶段带来麻烦。不过,这只是一个建议 为什么??你能解释一下吗?那么如何最好地构建单个数据库呢?您的问题几乎已经得到了答案。什么列类型适用于您正在收集的每一位数据?将它们与特定运行的标识符组合在一起,为其创建一个表,就基本完成了。这里是DB101。不要把它复杂化,我可能会把它变成一个整数。如果您想要一个描述,那么您应该用字段
run\u id
和description
或类似的内容创建另一个表。是的-有几十个度量值的表应该有一个唯一的measurement\u id
字段和一个(非唯一的)run\u id
字段,两者都是整数。该表的主要索引是measurement\u id
字段。您可能有更多的字段,或者可能需要更改字段类型,但这应该会给您一个想法。如果run\u id
的类型为notnull AUTO\u INCREMENT PRIMARY
,这会很好,以避免手动生成它们。对于测量值
表也是如此。为了更全面,您还需要运行id
上的索引,以便测量值
不会一直进行狗式慢速表扫描。