存储大量数据点?

时间:2008-11-01 07:05:44

标签: database

存储大量数据点的最佳方法是什么?

例如,在很多地方每分钟测量一次的温度值?

每个数据点一行的SQL数据库效率似乎不高。

4 个答案:

答案 0 :(得分:3)

我想知道为什么你认为它“效率不高”。您可能需要解释您的数据模型和架构,以提供更好的场景背景。

将多个数据点存储在一行中,当它们彼此不相关时,并且确实应该独立存在,这不是一个好方法。网格化将导致非常反直觉和古怪的查询语句,以提取给定方案所需的正确数据点。

我们之前在发电站完成了工作,从各种系统和计量设备收集了需要监测和汇总的各种气体和电气参数。它们可以每3-5分钟到30-60分钟,具体取决于参数的类型。这些自然导致每月数百万条记录。

关键是正确索引表,以便它们的物理顺序与记录所在的顺序相关联。(聚簇索引)新的页面和范围由输入数据按顺序创建和填充。这样可以防止大量的页面拆分和重新洗牌。

答案 1 :(得分:2)

关键问题可能是:您以后需要如何访问它们?

如果您需要将每个点与时间戳和位置ID相关联,以后需要根据多个客户端的时间/时间范围和位置检索单个测量,那么检索<数据库确实可能是最有效的/ strong>即可。

OTOH,如果您的客户端将加载并处理一个位置的一整天的数据,则每个位置和每天将数据存储在一个文件中会减少依赖性并且可能更容易。

其他问题是备份和存档,如果您的用户可以/应该自己处理。

答案 2 :(得分:1)

这样的表可能有效:

LocationID,温度,时间戳

我不明白为什么这不会有效。毕竟,这就是数据库的用途。

答案 3 :(得分:0)

将它们作为行和列存储在数据表中,因为数据表稍后可以按年份、月份和位置进行分区,以便使用并行处理加快提取速度。