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 内存缓存加速功能memcached安装与用法
Sep 03 PHP
实用PHP会员权限控制实现原理分析
May 29 PHP
PHP随机生成随机个数的字母组合示例
Jan 14 PHP
php之curl设置超时实例
Nov 03 PHP
php函数serialize()与unserialize()用法实例
Nov 06 PHP
php约瑟夫问题解决关于处死犯人的算法
Mar 23 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
Zend Framework连接Mysql数据库实例分析
Mar 19 PHP
php UNIX时间戳用法详解
Feb 16 PHP
php实现微信企业号支付个人的方法详解
Jul 26 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
Aug 01 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
Mar 22 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
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
JavaScript实现删除电脑的关机键
2016/07/26 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
ExtJS 2.2.1的grid控件在ie6中的显示问题
2009/05/04 Javascript
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
jQuery ReferenceError: $ is not defined 错误的处理办法
2013/05/10 Javascript
jquery中的查找parents与closest方法之间的区别
2013/12/02 Javascript
javascript中不等于的代码是什么怎么写
2013/12/29 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
jquery.tableSort.js表格排序插件使用方法详解
2020/08/12 Javascript
详解webpack+angular2开发环境搭建
2017/06/28 Javascript
react native仿微信PopupWindow效果的实例代码
2017/08/07 Javascript
jQuery实现的电子时钟效果完整示例
2018/04/28 jQuery
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
[04:04]DOTA2亚洲邀请赛比赛场馆&酒店全攻略
2017/03/23 DOTA
python生成指定长度的随机数密码
2014/01/23 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
python找出因数与质因数的方法
2019/07/25 Python
python多线程与多进程及其区别详解
2019/08/08 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
美国在线鲜花速递:ProFlowers
2017/01/05 全球购物
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
仓库主管岗位职责
2014/03/02 职场文书
三爱活动实施方案
2014/03/19 职场文书
创先争优演讲稿
2014/09/15 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
2019大学生实习报告
2019/06/21 职场文书