我有多个设备(具体来说是 11 个)每秒发送信息。这些信息在 apache 服务器中接收,由 PHP 脚本解析,存储在数据库中,最后显示在 gui 中。我现在正在做的是检查当天是否存在一行,如果不存在则创建一个新行,否则更新它。我这样做的原因是因为我需要从数据库中轮询信息并将其显示在 C++ 应用程序中以使其看起来有点实时;如果我要在每次设备发送信息时创建一行,处理和读取数据将花费大量时间以及系统资源(内存、CPU 等),从而使数据的显示不太真实-时间。我写了一个报告生成工具,它获取每天的信息(从 00:00:00 到 23:59:
我的问题基本上是:
是否可以直接在数据库服务器中执行插入/更新部分,还是必须在 php 脚本中执行逻辑?
是否有更好(更有效)的方式来存储信息而不会降低显示设备的性能?
关于报告生成,如果我想对间隔进行采样,假设从昨天 15:50:00 开始到今天 12:45:00 结束,我当前的数据结构无法完成,所以我需要按顺序考虑制作一个允许我创建此类查询的数据结构。
我使用的组件: - Apache 2.4.4 - PostgreSQL 9.2.3-2 - PHP 5.4.13