php – 高频Ajax和MySQL睡眠过载

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

语法明智一切都很完美.问题是,当我为我的社区激活ajax时,MysqL数据库中有30-40个SLEEP命令.所有这些似乎都忽略了10秒的设置超时.因此,它会影响整个网站的性能.

我的理解是,剩余睡眠命令是未关闭的连接的结果.我使用MysqLi面向对象的类,并使用我自己的一些函数扩展它.一切都是通过教科书,并根据文档进行了双重检查,我确保MysqLi类的每一小部分都被关闭并发布.

如果任何人对这种效果有任何智慧或经验,我将非常感谢任何建议.

解决方法:

您是否尝试过推送方法与当前的拉/轮询方法相比?看看Comet:

> Comet a new approach to AJAX applications
> Comet (wikipedia)
> Comet programming: Using AJAX to simulate server push
> Ajax Push Engine

但是,存在一些缺点,主要的缺点是您必须维护打开的连接,而某些浏览器会限制您可以维护的连接数.以下文章讨论了使用Comet的优缺点,并提出了一种混合轮询方法

> The allure of Comet

这是一个讨论彗星的stackoverflow问题:

> Compatibility of Comet with current technology

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...