SW-X 中的数据库操作主要使用连接池实现,启动Swoole服务的时候会根据/config/mysql.php
中的配置项来初始化对应的PDO连接。
当该连接使用完后,需要调用\x\Db->return()
方法归还连接。
注意:理论上所有连接归还会在__destruct
阶段检测,未手动归还的连接会被系统自动回收。
但若业务代码发生致命异常,__destruct
将无法触发。
理论上,SW-X的数据库设计是强制读写分离的,我们在/config/mysql.php
中可以看到数据库配置是,默认写在default
键中的,\x\Db
组件是默认使用该配置下的连接实例。
如果你需要使用读写分离,则只需要创建更多的连接配置项即可,然后在new \x\Db(其他配置键名)
即可切换使用不同的连接实例。
例如:
$Db = \x\Db(); // 默认是调用第一项的连接池
$Db = \x\Db('标识'); //手动指定调用的连接池