【问题标题】:High Frequency Ajax and MySQL Sleep Overload高频 Ajax 和 MySQL 睡眠过载
【发布时间】:2011-01-17 13:24:47
【问题描述】:

我目前正在开发一个轻量级的 php 框架,用于我的网站的一些高请求 ajax,并且遇到了一个让我完全难过的有趣问题。 ajax 用于一系列通知,因此 javascript 每 30 秒发送一次新信息的 ajax 请求。这个 ajax 在整个站点的每个页面上都处于活动状态,所以我意识到它的请求很多,因为在任何特定时刻都有数百名用户正在浏览该站点,其中许多用户打开了几个窗口。

语法方面一切都很完美。问题是,当我为我的社区激活 ajax 时,MySQL 数据库中有 30 - 40 个 SLEEP 命令。所有这些似乎都忽略了设置的 10 秒超时。结果,它会影响整个站点的性能。

我的理解是,剩余的睡眠命令是连接未关闭的结果。我正在使用 MySQLi 面向对象的类,并用我自己的一些功能对其进行了扩展。一切都在教科书上,并根据文档进行了双重检查,并且我确保 MySQLi 类的每一小部分都已关闭并发布。

如果有人对这种效果有任何智慧或经验,我将不胜感激。

【问题讨论】:

    标签: php javascript mysql ajax sleep


    【解决方案1】:

    您是否尝试过推送方式与当前的拉取/轮询方式?看看彗星:

    但是,也有一些缺点,主要是您必须保持打开的连接,并且某些浏览器会限制您可以保持的连接数量。以下文章讨论了使用 Comet 的优缺点,并提出了一种混合轮询方法:

    这是一个关于彗星的stackoverflow问题:


    【讨论】:

    • 我不确定如何将 COMET 融入我的设计中。谢谢你的建议,我会记住的。
    • 我发布的一些链接讨论了实现 Comet,即使使用 AJAX。
    猜你喜欢
    • 2011-09-13
    • 2013-05-17
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    • 2018-08-09
    相关资源
    最近更新 更多