SQLite是否为多个条目提供了合并功能?

时间:2016-06-26 12:33:04

标签: database sqlite

我计划在嵌入式Linux计算机(Raspberry Pi或类似规范)上使用SQLite数据库来存储大约16个浮点数的传感器数据,为期一到两年。

数据将通过Web界面访问,该界面也是从嵌入式主板提供的。目的是用图表等可视化数据。

假设用户希望在图表中查看整年的数据。为了不使用数百万个数据充斥客户端浏览器,在将数据上传到浏览器之前合并它是有意义的。例如,将描述一年中每年每周的平均值。

SQLite是否具有此类数据聚合命令,例如为单个表平均大量条目(平均,求和)?

这项操作在嵌入式计算机上的性能是否与着名的Raspberry Pi类似?

这些操作会锁定数据库吗?那么新的条目必须等待才能进入数据库吗?

1 个答案:

答案 0 :(得分:2)

简单的答案是'是'

https://www.sqlite.org/lang_aggfunc.html

但是你可能想要考虑有很多因素会影响查询的速度,其中最重要的是方案/数据模型设计以及所用表格的索引。

有关如何执行查询的讨论,请参阅https://www.sqlite.org/queryplanner.html

您有3个选项:

1)Pre生成时计算数据:每当您捕获新的传感器数据时,请对聚合进行更新。对于能够更改参数的用户而言,向下方的灵活性有限,他们会得到一组聚合和时间段的集合,以及它。

2)将数据发送到更强大的中央服务器,让客户端登录并使用中央服务器的马力来进行聚合。向下是传感器收集器需要连接到中央服务器,并且会出现规模问题,因为所有客户端的所有数据都是集中计算的。更多的客户,需要更多的马力。有许多服务器端扩展范例,因此这比成本技术更具成本约束。

3)将原始数据发送到客户端,让客户端机器处理聚合。如果你在谈论数百万条记录,那么下行就是数据传输。但是,对于客户端数据库引擎,如谷歌的爱田,我认为这是最好的未来证明架构选项,因为它允许您通过客户端库为用户提供强大的功能,并使用客户端'的机器资源。您还可以查看使用混合的较低级别预聚合模型,其中一些数据在发送到客户端之前预先聚合在服务器上以减少数据大小。