【问题标题】:What else to keep in mind when using mysql_pconnect in AJAX calls在 AJAX 调用中使用 mysql_pconnect 时还有什么要记住的
【发布时间】:2011-12-23 14:08:26
【问题描述】:

我构建了一个应用程序 (MySQL/PHP),它(及时)可能会使用与远程(可能很慢)MySQL 服务器的连接。该应用程序使用频繁打开数据库连接的 AJAX 耳语。我做了一些客户端优化,但从来没有足够的勇气使用持久连接,这在这里可能是个好主意。

我担心空闲的 mysql 连接可能会超过服务器限制,导致需要重新启动服务器。所以我打算用mysql.connection_timeout到15s,这样限制后会杀掉每一个空闲的持久连接?还是会阻塞系统资源直到服务器进程结束?

我不会在耳语中使用事务,每个锁都应该在连接关闭后释放,对吧?

还有其他我应该注意的持久连接问题吗? (我已经阅读了the documentation。)

【问题讨论】:

    标签: php mysql persistent-connection


    【解决方案1】:

    使用 MySQL 的持久连接通常不会获得任何好处。它的连接协议通常已经相当快了。当您使用常规的非持久连接时,您确实失去了对“干净”操作环境的保证。

    如果您的任何脚本在事务处理过程中因任何原因死亡或设置服务器端变量,则持久连接意味着当某个 OTHER 脚本再次拾取连接时,半完成事务仍然处于活动状态.

    发生这种情况时,您很容易陷入僵局。新脚本不知道它有一个旧的/脏的连接,并且 MySQL 看不到原来的连接脚本已经消失并进行自己的清理,所以你最终会得到一个垃圾散落的环境。

    话虽如此,您可以使用mysql.max_persistent 设置限制PHP 代表您保持打开的连接数。无论您尝试从脚本建立多少连接,PHP 都不会超过该限制,因此您可以将其设置为低于 MySQL 自己的 max_connections 设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      • 2018-05-30
      • 1970-01-01
      • 2011-07-15
      • 2019-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多