来源:自学PHP网 时间:2014-12-03 20:51 作者: 阅读:次
[导读] 在 Discuz! X版本 程序里面内置了读写分离的功能,方便了一些负载比较大的站点使用来降低一定的负载 Discuz! X 默认未开启此功能,需要在配置文件中做相应的修改此功能才会开启生效,在配...
Discuz X3 mysql数据库主从同步 读写分离在 Discuz! X版本 程序里面内置了读写分离的功能,方便了一些负载比较大的站点使用来降低一定的负载. Discuz! X 默认未开启此功能,需要在配置文件中做相应的修改此功能才会开启生效。 在配置开启读写分离的之前需要在服务器上先配置好 mysql 的主从下面介绍一下读写分离的配置: 读写分离只需要在 ./config/config_global.php 文件中加入,以下的内容即可:
在程序中每个入口文件都会先执行 $discuz->init(); 在该方法里中调用的 内部方法 _init_db():
会先 count(getglobal('config/db/slave')) 判断 config_global.php 中是否配置了 slave 如果配置了则会调用 ./source/class/class_mysql_slave.php 文件中的 db_mysql的子类 db_mysql_slave 代替 db_mysql,当程序执行query时 调到 db_mysql_slave 的 query方法:
此方法中判断了 非 $_config['db']['common']['slave_except_table'] 中设置的表及 为 SELECT 查询语句时使用从库的连接从从库查询数据,其他则用默认的使用主库. 如果在使用过程中有发现一些异常,或者想控制相关的 sql 语句读取的数据库,可以尝试在此方法中判断 $sql 的语句内容 来指定其需要读的主库还是从库. |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com