如何详细配置ThinkPHP中的数据库读写分离机制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1292个文字,预计阅读时间需要6分钟。
如果在ThinkPHP应用中将读操作分发给数据库,但配置后查询仍全部走向主库,可能是由于以下原因:
一、ThinkPHP 6.0+ 启用 deploy + rw_separate 模式
该模式为TP6官方推荐方式,通过部署模式控制主从路由,读写分离行为与模型操作强绑定,需确保配置层级和键名完全正确。
1、打开 config/database.php 文件,在 connections 数组内定义名为 'mysql' 的连接配置。
2、在该连接配置中,显式设置 'deploy' => 1,此项为读写分离总开关,缺失则整个机制不触发。
立即学习“PHP免费学习笔记(深入)”;
3、设置 'rw_separate' => true,仅当 deploy === 1 时此参数才生效。
4、配置 'write' 为单维数组(仅允许一个主库),例如:['host' => 'master.example.com', 'username' => 'root', ...]。
本文共计1292个文字,预计阅读时间需要6分钟。
如果在ThinkPHP应用中将读操作分发给数据库,但配置后查询仍全部走向主库,可能是由于以下原因:
一、ThinkPHP 6.0+ 启用 deploy + rw_separate 模式
该模式为TP6官方推荐方式,通过部署模式控制主从路由,读写分离行为与模型操作强绑定,需确保配置层级和键名完全正确。
1、打开 config/database.php 文件,在 connections 数组内定义名为 'mysql' 的连接配置。
2、在该连接配置中,显式设置 'deploy' => 1,此项为读写分离总开关,缺失则整个机制不触发。
立即学习“PHP免费学习笔记(深入)”;
3、设置 'rw_separate' => true,仅当 deploy === 1 时此参数才生效。
4、配置 'write' 为单维数组(仅允许一个主库),例如:['host' => 'master.example.com', 'username' => 'root', ...]。

