博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
thinkphp 3.2分布式数据库读写分离扩展阅读
阅读量:6893 次
发布时间:2019-06-27

本文共 1051 字,大约阅读时间需要 3 分钟。

        thinkphp 3.2分布式数据库读写分离扩展阅读

        ThinkPHP内置了分布式数据库的支持,包括主从式数据库的读写分离,但是分布式数据库必须是相同的数据库类型。


        配置DB_DEPLOY_TYPE 为1 可以采用分布式数据库支持。如果采用分布式数据库,定义数据库配置信息的方式如下:

            //分布式数据库配置定义

            'DB_DEPLOY_TYPE'=> 1, // 设置分布式数据库支持

            'DB_TYPE' => 'mysql', //分布式数据库类型必须相同

            'DB_HOST' => '192.168.0.1,192.168.0.2',

            'DB_NAME' => 'thinkphp', //如果相同可以不用定义多个

            'DB_USER' => 'user1,user2',

            'DB_PWD' => 'pwd1,pwd2',

            'DB_PORT' => '3306',

            'DB_PREFIX' => 'think_',


        连接的数据库个数取决于DB_HOST定义的数量,所以即使是两个相同的IP也需要重复定义,但是其他的参数如果存在相同的可以不用重复定义,例如:

            'DB_PORT'=>'3306,3306'


        和


            'DB_PORT'=>'3306'


        等效。


            'DB_USER'=>'user1',

            'DB_PWD'=>'pwd1', 


        和


            'DB_USER'=>'user1,user1',

            'DB_PWD'=>'pwd1,pwd1',


        等效。


    
    还可以设置分布式数据库的读写是否分离,默认的情况下读写不分离,也就是每台服务器都可以进行读写操作,对于主从式数据库而言,需要设置读写分离,通过下面的设置就可以:
            'DB_RW_SEPARATE'=>true,


        在读写分离的情况下,默认第一个数据库配置是主服务器的配置信息,负责写入数据,如果设置了DB_MASTER_NUM参数,则可以支持多个主服务器写入。其它的都是从数据库的配置信息,负责读取数据,数量不限制。每次连接从服务器并且进行读取操作的时候,系统会随机进行在从服务器中选择。


        还可以设置DB_SLAVE_NO 指定某个服务器进行读操作。


        调用模型的CURD操作的话,系统会自动判断当前执行的方法的读操作还是写操作,如果你用的是原生SQL,那么需要注意系统的默认规则: 写操作必须用模型的execute方法,读操作必须用模型的query方法,否则会发生主从读写错乱的情况。


        
    注意:主从数据库的数据同步工作不在框架实现,需要数据库考虑自身的同步或者复制机制。

转载地址:http://bcudl.baihongyu.com/

你可能感兴趣的文章
libavcodev may be vulnerable or is not supported, and should be updated for play video
查看>>
ECMAScript 5 —— Function 类型 (二)
查看>>
Java Web 自动登录
查看>>
IOS中文本框输入自动隐藏和自动显示
查看>>
邮件发送封装方法
查看>>
网络安全维护九眼智能大数据显身手
查看>>
算法导论笔记——第二十章 van Emde Boas树
查看>>
TCP的三次握手/四次挥手
查看>>
主席树(区间第k小)
查看>>
iOS开发:告诉git不要跟踪UserInterfaceState.xcuserstate
查看>>
一个简单的WPF界面框架
查看>>
zt:Linux查看程序端口占用情况
查看>>
iis下thinkphp配置url rewrite伪静态
查看>>
jQuery-表单选择器
查看>>
Unique Binary Search Trees-计算表示相同序列的不同BST个数
查看>>
git 第三天 SSH免密码登录 1
查看>>
Notepad++ 列操作
查看>>
window.XMLHttpRequest
查看>>
【原】iOS学习之ARC和非ARC文件混编
查看>>
方法过滤器,分布式缓存 Memcached实现Session解决方案
查看>>