【发布时间】:2015-08-28 11:21:03
【问题描述】:
有很多博客/链接不鼓励使用持久连接,主要是因为清理需要在客户端完成,以及必须正确回滚事务/锁的情况。但是,这些链接是旧的,并且不完全在 mysqli PHP 接口的上下文中。
我阅读了链接:The mysqli Extension and Persistent Connections
它清楚地表明,当客户端意外终止时,它会执行大部分所需的清理工作:
- 回滚活动事务
- 关闭并删除临时表
- 解锁表
- 重置会话变量
- 关闭准备好的语句(PHP 总是这样)
- 关闭处理程序
- 释放使用 GET_LOCK() 获取的锁
现在几乎完成了大部分清理工作,包括表上的读/写锁(如果有的话)。所以我相信它应该是安全的。我会错吗?
此外,它还表示需要额外的时间来进行清理会导致一些性能损失。我想知道以毫秒计可能是多少?它可以像 100 毫秒一样大吗?
自动清理功能虽然有优点也有缺点。 好处是程序员再也不用担心 添加清理代码,因为它是自动调用的。但是,那 缺点是代码可能会慢一点,因为 执行清理的代码需要在每次连接时运行 从连接池返回。
【问题讨论】:
标签: php mysqli persistent-connection