【问题标题】:Is it safe to use persistent connection using PHP mysqli interface?使用 PHP mysqli 接口使用持久连接是否安全?
【发布时间】:2015-08-28 11:21:03
【问题描述】:

有很多博客/链接不鼓励使用持久连接,主要是因为清理需要在客户端完成,以及必须正确回滚事务/锁的情况。但是,这些链接是旧的,并且不完全在 mysqli PHP 接口的上下文中。

我阅读了链接:The mysqli Extension and Persistent Connections

它清楚地表明,当客户端意外终止时,它会执行大部分所需的清理工作:

  • 回滚活动事务
  • 关闭并删除临时表
  • 解锁表
  • 重置会话变量
  • 关闭准备好的语句(PHP 总是这样)
  • 关闭处理程序
  • 释放使用 GET_LOCK() 获取的锁

现在几乎完成了大部分清理工作,包括表上的读/写锁(如果有的话)。所以我相信它应该是安全的。我会错吗?

此外,它还表示需要额外的时间来进行清理会导致一些性能损失。我想知道以毫秒计可能是多少?它可以像 100 毫秒一样大吗?

自动清理功能虽然有优点也有缺点。 好处是程序员再也不用担心 添加清理代码,因为它是自动调用的。但是,那 缺点是代码可能会慢一点,因为 执行清理的代码需要在每次连接时运行 从连接池返回。

【问题讨论】:

    标签: php mysqli persistent-connection


    【解决方案1】:

    我想知道你是否真的认为你可以信任匿名路人的答案而不是官方文档页面,这清楚地回答了你的问题。

    但如果你这样做 - 是的,你可以相信它应该是安全的。

    就性能损失而言,从被问到的方式来看,我相信你根本不需要持久连接。

    【讨论】:

    • 那么清理所需的时间会超过数据库连接吗?
    猜你喜欢
    • 1970-01-01
    • 2012-06-06
    • 2011-04-21
    • 2011-03-29
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多