我有一个时间序列模拟模型,它有超过10个输入变量.不同仿真实例的数量将超过100万,并且每个模拟实例每天生成几行输出。
为了将模拟结果保存在关系数据库中,我设计了这样的表。
创建表SimulationModel (
simul_id整数主键,
input0字符串/数字,
input1字符串/数字,
...)
创建表SimulationOutput (
dt DateTime主键,
simul_id整数主键,
output0数字,
...)
为了使每一种模式都是独一无二的,我正在考虑以下几种方法。
的所有输入列都设置了唯一的约束。
)
你对这些选择有什么看法?
在包含数百万行的10多个列上使用唯一索引没有问题吗?
还有其他推荐的方法吗?
(我可以使用postgresql)
发布于 2010-06-09 20:56:27
创建unqiue约束。有几百万行的10列实际上不是一个大表。而且,您的测试可能会从使用索引中受益--或者至少一个索引不会产生任何伤害。
发布于 2010-06-09 10:00:47
如果您为模拟模型创建了两个表,如下所示:
Table SimulationModel {
id: integer,
...
}
Table SimulationModelInput {
simulationmodel_id: integer foreign key(SimulationModel.id),
input: string or numeric,
...
}然后您可以设置一个约束(simulationmodel_id,输入),但是获取配置的查询要复杂得多。
发布于 2010-06-09 10:04:55
唯一索引是确保每一组输入都是唯一的方法。
https://stackoverflow.com/questions/3004717
复制相似问题