Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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
MYSQL和PHP更新事件?_Php_Mysql_Database - Fatal编程技术网

MYSQL和PHP更新事件?

MYSQL和PHP更新事件?,php,mysql,database,Php,Mysql,Database,我目前有一个应用程序,每5秒检查一次数据库更新。虽然这是为

我目前有一个应用程序,每5秒检查一次数据库更新。虽然这是为<500个用户做的工作,但继续下去似乎不太实际


当数据库中的一行发生更改时,是否有任何方法可以激活php?我知道有一些服务可以使用,但它们很昂贵或不实用,我现在无法集成

有没有办法在MYSQL中使用触发器来实现这一点,或者说,如果每5秒有10000个用户在哪里查询数据库,我就什么都不用担心了


感谢您的时间

当数据库中的某一行发生更改时,是否有任何方法可以生成php? 否。PHP文件执行一次,输出被转储

要实现这种功能,可以使用PHP,并让ajax请求以预定义的间隔或按需使用按钮控件为用户更新浏览器

如果要将更新从数据库推送到web客户端,可以查看使用哪个连接到套接字服务器并允许推送事件。如果要考虑可伸缩性,我还建议查看Node.JS,您将在当前硬件上获得一些额外的性能。扩展应用程序也更容易。

注意 如果您担心每5秒调用一次MySQL服务器的成本。这将提高执行速度,而不会对脚本(或通知机制)进行太多更改,而且可能已经足够了



当数据库中的某一行发生更改时,是否有任何方法可以激活php 数据库

您似乎想触发MySQL发起的某种推送机制。开箱即用,如果没有某种插件或中间件,这是不可能的

中间件 有两个可用的免费守护进程可以保持与MySQL服务器的持久连接,并在指定的时间间隔内共享数据库。这模拟了推送机制。 您也可以自己创建一个。但是您可以使用PHP来实现相同的结果

这可能是解决此问题的最佳方法,尽管不是真正的推送通知系统

插件 也可以在MySQL中启动通知

  • 。您可以计划在每个时间间隔触发一个事件,以查找数据库中的更改
  • 您可以使用名为
  • 基本上,您将使用MySQL调度事件来查找表中的更改,如果找到更改,它将执行一个命令。 该命令可以是一个PHP脚本,反过来,它会通知您的客户机这些更改


    可以通过池(正如您现在所做的)或推送通知(使用WebSocket)来通知客户机。而且

    这取决于你到底想触发什么,但对我来说,5秒钟的民意调查听起来很合理。即时足够,而不会成为服务器上的锤子。如果您在
    requestAnimationFrame
    调用中包装轮询,则会获得额外的积分,因为只有在浏览器选项卡可见时,轮询才会重新加载-我的用户对延迟到选项卡再次聚焦的更新做出了肯定的评论,用户位置每5秒插入数据库,web应用程序每5秒选择一次位置数据,我猜每个用户每5秒有2个请求。支持某项功能并不意味着建议这样做。我可以用PHP编写一个操作系统,这不是一个好主意。非常感谢您的时间,这正是我想要的-我将探索我的应用程序的最佳选择。再次感谢。