php - 每 X 秒(异步)从数据库访问数据的最佳方式

标签 php database asynchronous

好吧,我现在真的不知道如何提出这个问题,尤其是标题。但我会试一试,希望我在努力保持它与其他人相关的同时足够具体。

我想每隔 X 秒在后台运行一个 php 脚本(通过 ajax)从数据库返回数据,如何在不使用大量服务器资源的情况下以最佳方式做到这一点?

我的解决方案是这样的:

用户访问一个网页,每 x 秒该页面运行一个 javascript。 javascript 调用调用数据库的 PHP 脚本/文件,检索数据并将数据返回给 javascript。然后 javascript 将数据打印到页面。我担心的是,如果页面上有很多(10 000)个并发访问者,这种解决方法会给服务器带来很大压力。还有其他方法吗?

最佳答案

鉴于您设定的规范/要求,这听起来是最好的方法。

另一种方法是有一个中间步骤。如果你要有一个巨大的流量(否则这不会带来任何好处,相反可能会使过程过于复杂/减慢),添加另一个表来记录上次数据集被访问的时间提取,并根据新查询创建一个硬文件(例如 XML),如果“上次”被认为是很久以前的事,则此 XML 会将返回的结果提供给用户。

所以:

1.Javascript调用PHP脚本(AJAX)

2.PHP ping DB表包含最后一次数据完全输出

3.如果时间太长,将重新运行“主”查询并从输出中重新生成 XML 文件 否则跳到 4

4.根据返回的 AJAX 获取 XML 文件和输出

关于php - 每 X 秒(异步)从数据库访问数据的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4163846/

相关文章:

php - PDO 事务函数与 MySQL 事务语句?

php - TYPO3:带有参数和依赖注入(inject)的 Symfony 命令

php - 在 PHP 中回显 SQL 字段

c# - 如何将 SQLite .db 添加到 C#.NET 项目中

javascript - 我如何重新渲染 Pinterest Pin It 按钮?

php - 在引号中用逗号分隔字符串中的逗号分隔电子邮件地址

ios - sqlite 数据库更改后 'reloadData' 时 cell.textLabel 中的旧数据

mysql - 外键用户或个人资料哪个更好

javascript - 为什么 require.js 和所有其他库之间有如此大的跳跃?

c# - 我应该避免使用 'async void' 事件处理程序吗?