Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 存储大量数据点?_Database - Fatal编程技术网

Database 存储大量数据点?

Database 存储大量数据点?,database,Database,存储大量数据点的最佳方式是什么 例如,在许多位置每分钟测量一次的温度值 每个数据点一行的SQL数据库似乎效率不高。我想知道为什么您认为它“效率不高”。您可能需要解释您的数据模型和模式,以提供更好的场景上下文 将多个数据点存储到一行中,而这些数据点彼此不相关,实际上应该独立存在,这不是一个好方法。网格化将导致非常不直观和古怪的查询语句,以提取给定场景所需的正确数据点 我们以前在发电站做过工作,从各种系统和计量设备收集数据,收集需要监测和汇总的各种气体和电气参数。根据参数类型,它们可以每3-5分钟到

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

例如,在许多位置每分钟测量一次的温度值


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

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

将多个数据点存储到一行中,而这些数据点彼此不相关,实际上应该独立存在,这不是一个好方法。网格化将导致非常不直观和古怪的查询语句,以提取给定场景所需的正确数据点

我们以前在发电站做过工作,从各种系统和计量设备收集数据,收集需要监测和汇总的各种气体和电气参数。根据参数类型,它们可以每3-5分钟到30-60分钟出现一次。这些自然会导致每月数百万条记录


关键是正确地索引表,以便它们的物理顺序与记录进入的顺序相关联。(聚集索引)新页面和扩展数据块由传入数据按顺序创建和填充。这样可以防止大规模的页面拆分和重新洗牌。

这样的表可能会起作用:

位置ID、温度、时间戳


我不明白为什么这样做效率不高。毕竟,这就是数据库的用途。

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

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

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


其他问题是备份和归档,以及您的用户是否可以/应该自己处理这些问题

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

这是数据到达的物理顺序和聚集索引的一个很好的观点。按日期/时间戳划分表是另一种分散负载的方法,特别是当您需要长时间保存历史记录时。您是在寻求速度效率还是存储效率?您计划如何处理这些数据?您需要将数据保留多久?以后如何访问和查询这些数据将是影响为表配置何种类型的非聚集索引的关键。