You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中能否通过mysqli驱动建立MySQL持久化连接?

PHP中mysqli驱动的MySQL持久化连接实现

可以的,mysqli驱动完全支持MySQL持久化连接,能让多次独立的PHP请求共用同一个数据库连接,以此减少重复建立连接的开销。

如何创建持久化连接

创建持久连接的核心是在数据库主机名前添加p:前缀:

  • 过程式写法:
$conn = mysqli_connect('p:localhost', 'your_username', 'your_password', 'your_db');
  • 面向对象写法:
$conn = new mysqli('p:localhost', 'your_username', 'your_password', 'your_db');

核心原理

PHP会将持久化连接保存在专门的连接池中,当新的请求到达时,如果池中有可用的同参数(主机、用户名、数据库等一致)持久连接,就直接复用,无需重新与MySQL服务器握手建立新连接。

关键注意事项

  • 检查PHP配置:确保php.ini中mysqli.allow_persistent设为On(默认开启),mysqli.max_persistent可根据服务器配置调整最大持久连接数上限
  • 重置会话状态:持久连接会保留上一次请求的会话状态(比如字符集设置、未提交的事务),所以每次使用前建议重置必要状态,例如执行SET NAMES utf8mb4或确认事务已提交
  • 处理闲置断开:如果持久连接长时间未被使用,MySQL服务器可能会主动断开连接,此时PHP会自动尝试重新建立连接
  • 避免用户状态残留:不要在持久连接中存储特定用户的会话数据,因为连接会被不同请求的用户复用

内容的提问来源于stack exchange,提问作者Čamo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 01:15:31