gpt4 book ai didi

php - 每隔给定时间插入一行,否则更新前一行(Postgresql,PHP)

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:50:29 25 4
gpt4 key购买 nike

我有多个设备(具体为 11 个)每秒发送一次信息。此信息在 apache 服务器中接收,由 PHP 脚本解析,存储在数据库中,最后显示在 gui 中。我现在正在做的是检查当前日期的行是否存在,如果不存在则创建一个新行,否则更新它。我这样做的原因是因为我需要从数据库中轮询信息并将其显示在 C++ 应用程序中以使其看起来有点实时;如果每次设备发送信息时我都创建一行,处理和读取数据将花费大量时间以及系统资源(内存、CPU 等),从而使数据显示不太真实-时间。我编写了一个报告生成工具,它获取每天(从 00:00:00 到 23:59:59)的信息并将其放入 Excel 电子表格中。

我的问题基本上是:

  • 是否可以直接在数据库服务器中执行插入/更新部分,还是我必须在 php 脚本中执行逻辑?

  • 是否有更好(更有效)的方式来存储信息而不降低显示设备的性能?

  • 关于报告生成,如果我想采样间隔假设从昨天 15:50:00 开始到今天 12:45:00 结束,我当前的数据结构无法完成,那么怎么办我需要考虑以创建一个允许我创建此类查询的数据结构。

我使用的组件: - Apache 2.4.4 - PostgreSQL 9.2.3-2 - PHP 5.4.13

最佳答案

我的建议 - 只需存储您的设备正在发送的所有信息。通过适当的索引和查询,您可以非常快速地处理和检索来自数据库的信息。

对于您的问题:

是的,可以使用 SQL、PL/pgSQL、PL/PHP、PL/Java、PL/Py 和 Postgres 内置的许多其他语言在 Postgres DB 中构建您想要的任何逻辑。

正如我之前所说 - 适当的索引可以创造奇迹。

如果您无法通过全表获得所需的查询速度 - 您可以为每个设备创建一个只有 1 行的小表。并在此表中保留最后已知的值,以某种实时方式显示它们。

关于php - 每隔给定时间插入一行,否则更新前一行(Postgresql,PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16678631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com