max_user_connections和ajax

时间:2011-03-23 05:44:17

标签: php mysql ajax

我网站上的某些页面是通过大量的ajax调用填充的,通常是20多个异步运行的ajax调用。我遇到的问题是每次调用都会创建一个新的mysql_connection,导致我收到'max_user_connections'错误,我被告知在20处被限制。我试过关闭异步,但作为JQuery文档状态,这通常会冻结页面。我已经考虑将其转换为1 ajax调用并让php执行循环,但想法是显示每个元素,因为它变得可用(一些数据是从外部源收集的,因此时间可能会有所不同)

这可以用mysql_pconnect修复吗?

2 个答案:

答案 0 :(得分:1)

  

这可以用mysql_pconnect修复吗?

不 - 您需要:

1)增加mysql将处理的连接数(不推荐 - 不是没有复制的可扩展解决方案)

2)提高ajax调用处理程序的速度(例如查询调优,数据库/操作码/ http级缓存)

3)降低ajax呼叫的频率 - 例如如果最后一次发生在500毫秒内,则通过滑动呼叫

答案 1 :(得分:0)

即使没有MySQL问题,20多个Ajax调用也是一个问题。浏览器不会同时进行这20次调用,因为它将最大http连接(对于单个domian)限制为2,4或8。

我会将这些请求组合在一起,并将Ajax调用的数量降低到6 - 8.正如您所提到的,其余调用从外部源获取数据。这些电话也与MySQL交谈吗? 此外,这些事情可能有所帮助:

  1. 你可以缓存一些东西(例如 用户名,用户全名)在http会话
  2. 你可以将一些数据从MySQL缓存到memcached甚至文件中吗?当数据可用时,可以更新缓存。