ThinkPHP不同版本如何影响数据库连接池性能与高效配置?
- 内容介绍
- 文章标签
- 相关推荐
本文共计911个文字,预计阅读时间需要4分钟。
官方底层使用的可能是 PDO 或 MySQLi,每次请求都是短连接——即查询完毕后立即关闭连接,不会重复使用连接。所谓连接池是指应用层自己维护的长时间连接队列,TP 框架本身并未实现这个机制。
-
Db::connect()每次调用都可能新建连接(取决于配置中的deploy和pool_size是否启用) - TP 6.1+ 虽然加了
pool_size配置项,但它只对think-swoole扩展生效,且依赖 Swoole 的协程上下文管理 - 纯 FPM 模式下设
pool_size是无效的,连接数上限仍由 PHP-FPM 的pm.max_children和 MySQL 的max_connections共同决定
想用连接池,必须搭配 Swoole + think-swoole 扩展
只有在协程环境下,才能真正复用数据库连接。TP 原生的 Db 类在协程中默认不安全,必须通过 think-swoole 提供的 SwoolePool 代理或改用 CoMysql 客户端。
本文共计911个文字,预计阅读时间需要4分钟。
官方底层使用的可能是 PDO 或 MySQLi,每次请求都是短连接——即查询完毕后立即关闭连接,不会重复使用连接。所谓连接池是指应用层自己维护的长时间连接队列,TP 框架本身并未实现这个机制。
-
Db::connect()每次调用都可能新建连接(取决于配置中的deploy和pool_size是否启用) - TP 6.1+ 虽然加了
pool_size配置项,但它只对think-swoole扩展生效,且依赖 Swoole 的协程上下文管理 - 纯 FPM 模式下设
pool_size是无效的,连接数上限仍由 PHP-FPM 的pm.max_children和 MySQL 的max_connections共同决定
想用连接池,必须搭配 Swoole + think-swoole 扩展
只有在协程环境下,才能真正复用数据库连接。TP 原生的 Db 类在协程中默认不安全,必须通过 think-swoole 提供的 SwoolePool 代理或改用 CoMysql 客户端。

