Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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
Php 提供实时信息的最佳方式?_Php_Mysql_Sql_Ajax_Json - Fatal编程技术网

Php 提供实时信息的最佳方式?

Php 提供实时信息的最佳方式?,php,mysql,sql,ajax,json,Php,Mysql,Sql,Ajax,Json,我目前有三个屏幕显示一个网页,其中包含从数据库中获取的信息。此信息每10秒更新一次。这三个屏幕在PHP脚本上调用AJAX,该脚本执行MySQL查询,打印JSON编码的结果,这就是它用来表示数据的内容。这个查询是一个资源密集型的查询 我的问题与可伸缩性有关:如果有十个人进入该页面,他们都会让php脚本在同一时间每10秒运行一次,从而导致服务器过载 我正在考虑在后台执行此查询,并将结果输出到文本文件,然后通过AJAX检索该文本文件,但我觉得必须有更好的方法来执行此操作 因此,问题是:如何处理重复且非

我目前有三个屏幕显示一个网页,其中包含从数据库中获取的信息。此信息每10秒更新一次。这三个屏幕在PHP脚本上调用AJAX,该脚本执行MySQL查询,打印JSON编码的结果,这就是它用来表示数据的内容。这个查询是一个资源密集型的查询

我的问题与可伸缩性有关:如果有十个人进入该页面,他们都会让php脚本在同一时间每10秒运行一次,从而导致服务器过载

我正在考虑在后台执行此查询,并将结果输出到文本文件,然后通过AJAX检索该文本文件,但我觉得必须有更好的方法来执行此操作


因此,问题是:如何处理重复且非常缓慢的sql查询以允许多个用户访问?

您确定这是正确的问题吗?如果您将nodejs与socket.io一起使用,您可以在数据更新时轻松发送数据(并且不必每隔10秒询问是否更新),甚至可以对用户进行分组您是否已经在使用任何类型的缓存,如Memcached或Redis?因为这可能是一个可行的解决方案。您的资源密集型查询有多“密集”?每秒一个请求对您的数据库服务器来说应该不是问题……我不确定正确的问题是什么,因为我后来意识到这都是关于糟糕的设计。不,我目前没有使用Memcached,但会调查一下。然而,对于这种情况,带socket.io的nodejs似乎是最好的解决方案。谢谢你的快速回答!