PHP访问数据库集群的方法小结


Posted in PHP onMarch 14, 2016

本文总结分析了PHP访问数据库集群的方法。分享给大家供大家参考,具体如下:

一般常见的有三种做法:

1、自动判断sql是否为读,来选择数据库的连接:

实例化php DB类的时候,需要一次连接两台服务器,然后根据slq选择不同的连接,举个例子:

$link_w = mysql_connect($w_host,$user,$pwd);
$link_r = mysql_connect($r_host,$user,$pwd);
//执行sql
if(preg_match("/^select/i", trim($sql))) {
  mysql_query($sql,$link_r);
}else {
  mysql_query($sql,$link_w);
}

这个方法的优点就是开发者执行sql不用区分读或者写,在db类的底层自己判断,缺点是,往往只需要读或者写时也需要打开两个连接。

2、调用的时候自己选择:

当执行sql前一般是能确定是写还是读,所以开发者需要手动的调用不同的连接,举个例子:

$w_db = new DB('w');
$w_db -> query('insert into .....');

当sql为读:

$r_db = new DB('r');
$r_db -> query('select .....');

主要通过,传的参数来区别sql是读还是写,每次调用sql前需要调用开发者自己判断。

3、使用MySQL Proxy做中间层代理,会自动将判断sql是读或者写,将请求转发给服务器。优点是程序不用更改任何代码,只要启动mysql proxy 时分别指定读或写的服务器:

--proxy-backend-addresses
--proxy-read-only-backend-addresses

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
台湾中原大学php教程孙仲岳主讲
Jan 07 PHP
PHP下10件你也许并不了解的事情
Sep 11 PHP
PHP 创建标签云函数代码
May 26 PHP
zend framework多模块多布局配置
Feb 26 PHP
PHP以及MYSQL日期比较方法
Nov 29 PHP
php 判断字符串中是否包含html标签
Feb 17 PHP
神盾加密解密教程(一)PHP变量可用字符
May 28 PHP
php输出xml属性的方法
Mar 19 PHP
yii去掉必填项中星号的方法
Dec 28 PHP
基于PHP后台的Android新闻浏览客户端
May 23 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
详解PHP序列化和反序列化原理
Jan 15 PHP
php 无限级分类 获取顶级分类ID
Mar 13 #PHP
PHP实现文件上传与下载实例与总结
Mar 13 #PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
Mar 11 #PHP
PHP批量去除BOM头内容信息代码
Mar 11 #PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 #PHP
php实现无限级分类查询(递归、非递归)
Mar 10 #PHP
Zend Framework教程之Application和Bootstrap用法详解
Mar 10 #PHP
You might like
set_include_path在win和linux下的区别
2008/01/10 PHP
PHP之COOKIE支持详解
2010/09/20 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
PHP基础知识介绍
2013/09/17 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
2017/08/07 PHP
JQuery 获取和设置Select选项的代码
2010/02/07 Javascript
Javascript继承机制的设计思想分享
2011/08/28 Javascript
jquery 鼠标滑动显示详情应用示例
2014/01/24 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
Boostrap实现的登录界面实例代码
2016/10/09 Javascript
js实现table添加行tr、删除行tr、清空行tr的简单实例
2016/10/15 Javascript
Vue.js组件通信的几种姿势
2017/10/23 Javascript
nodejs简单实现TCP服务器端和客户端的聊天功能示例
2018/01/04 NodeJs
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
vue实现多个元素或多个组件之间动画效果
2018/09/25 Javascript
浅谈python多线程和队列管理shell程序
2015/08/04 Python
利用信号如何监控Django模型对象字段值的变化详解
2017/11/27 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
python实现旋转和水平翻转的方法
2018/10/25 Python
django主动抛出403异常的方法详解
2019/01/04 Python
Pycharm简单使用教程(入门小结)
2019/07/04 Python
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
长曲棍球装备:Lacrosse Monkey
2020/12/02 全球购物
大学生求职简历的自我评价
2013/10/14 职场文书
淘宝网店营销策划书
2014/01/11 职场文书
婚假请假条怎么写
2014/04/10 职场文书
任命书怎么写
2014/06/04 职场文书
班子群众路线教育实践个人对照检查材料思想汇报
2014/09/30 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书
公司回复函格式
2015/07/14 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
 python中的元类metaclass详情
2022/05/30 Python