【问题标题】:How to keep database connect alive?如何保持数据库连接活跃?
【发布时间】:2010-11-30 01:10:20
【问题描述】:

我正在使用 ajax,而且如果不是一直如此,第一个请求就会超时。事实上,如果我在提出新请求之前延迟几分钟,我总是会遇到这个问题。但是后续的请求都OK。所以我猜第一次使用的数据库连接已经死了。我正在使用 MySQL。

有什么好的解决办法吗?

【问题讨论】:

  • 您使用哪种语言的 MySQL 和 Ajax? PHP?

标签: php mysql ajax timeout


【解决方案1】:

你能澄清一下吗:

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

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

【讨论】:

    【解决方案2】:

    您的问题可能不是打开连接,而是实际为请求提供服务。 由于 mysql 查询缓存,后续调用速度很快。

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

    【讨论】:

    • 但唯一执行的查询是 :mysql_query("BEGIN", $con);我出于测试目的终止了它。
    • 是共享主机服务器吗?
    • 我正在从 localhost 测试它。
    • 您知道浏览器会限制与单个 Web 服务器的并发打开连接数吗?尝试直接调用您的服务器端函数,看看它通常需要多长时间(也适用于“第一次”调用)。
    猜你喜欢
    • 2011-05-21
    • 2011-08-07
    • 2020-12-06
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    相关资源
    最近更新 更多