如何保持数据库连接活着?

时间:2009-09-21 10:46:51

标签: php mysql ajax timeout

我正在使用ajax,并且通常如果不是所有时间,第一个请求超时。事实上,如果我在提出新请求之前延迟几分钟,我总是遇到这个问题。但随后的请求都没问题。所以我猜这是第一次使用死机的数据库连接。我正在使用MySQL。

有什么好的解决方案吗?

2 个答案:

答案 0 :(得分:1)

你能澄清一下:

  • 您是否尝试建立持久性连接?
  • 执行基本的MySQL查询(例如SELECT 'hard-coded' FROM DUAL
  • MySQL查询对您的ajax调用需要多长时间(例如,如果您从mysql命令行或GUI客户端运行它。)
  • 您多久到您的AJAX查询中使用的MySQL表?

回答这些问题应该有助于排除与持久性连接无关的其他问题:基本数据库连接,表索引/慢速运行SQL,MySQL缓存失效等。

答案 1 :(得分:0)

你有问题的可能是没有打开连接,但实际上是在提供请求。 由于mysql查询缓存,后续调用很快。

你需要做的是寻找缓慢的mysql查询,例如打开慢查询日志,或者使用mytop或“SHOW PROCESSLIST”实时查看服务器,看看是否有查询花了太长时间。如果找到了,请使用EXPLAIN确保它已正确编入索引。