我有多个设备(具体来说是11个),它们每秒发送一次信息。该信息在Apache服务器中接收,由PHP脚本解析,存储在数据库中,最后显示在gui中。
我现在正在做的是检查是否存在当前日期的行,如果不存在则创建一个新行,否则进行更新。
之所以这样做,是因为我需要轮询数据库中的信息并将其显示在c++应用程序中,以使其看起来具有实时性。如果我每次设备发送信息时都要创建一行,则处理和读取数据将花费大量时间以及系统资源(内存,CPU等),从而使数据显示不太真实。时间。
我编写了一个报告生成工具,该工具每天获取信息(从00:00:00到23:59:59),并将其放入Excel电子表格中。
我的问题基本上是:
我使用的组件:
-Apache 2.4.4
-PostgreSQL 9.2.3-2
-PHP 5.4.13
最佳答案
我的建议-仅存储设备正在发送的所有信息。使用适当的索引和查询,您可以真正快速地从DB处理和检索信息。
对于您的问题:
是的,可以使用SQL,PL / pgSQL,PL / PHP,PL / Java,PL / Py和Postgres内置的许多其他语言在Postgres DB中构建所需的任何逻辑。
就像我之前说过的那样-正确的索引编制可以神奇。
如果无法通过全表获得所需的查询速度-您可以为每个设备创建一个只有1行的小表。并在此表中保留最后一个已知值,以sort of real-time
显示它们。