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 相关文章推荐
Session的工作方式
Oct 09 PHP
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
Sep 02 PHP
php与XML、XSLT、Mysql的结合运用实现代码
Nov 19 PHP
PHP strncasecmp字符串比较的小技巧
Jan 04 PHP
PHP获取url的函数代码
Aug 02 PHP
解析PHP汉字转换拼音的类
Jun 18 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
Sep 28 PHP
一个php短网址的生成代码(仿微博短网址)
May 07 PHP
ThinkPHP中处理表单中的注意事项
Nov 22 PHP
学习php设计模式 php实现命令模式(command)
Dec 08 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
Feb 15 PHP
PHP大文件切割上传并带进度条功能示例
Jul 01 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
php 修改、增加xml结点属性的实现代码
2013/10/22 PHP
CodeIgniter CLI模式简介
2014/06/17 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
2015/01/09 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
JQuery AJAX实现目录浏览与编辑的代码
2008/10/21 Javascript
Prototype源码浅析 Number部分
2012/01/16 Javascript
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
Javascript基础教程之switch语句
2015/01/18 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
基于jquery实现简单的分页控件
2016/03/17 Javascript
详解js数组的完全随机排列算法
2016/12/16 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
详解动画插件wow.js的使用方法
2017/09/13 Javascript
vue.js element-ui tree树形控件改iview的方法
2018/03/29 Javascript
javascriptvoid(0)含义以及与"#"的区别讲解
2019/01/19 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
Django实现组合搜索的方法示例
2018/01/23 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
python 实现单通道转3通道
2019/12/03 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
2020/01/13 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
Python 多进程、多线程效率对比
2020/11/19 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
python网络爬虫实现发送短信验证码的方法
2021/02/25 Python
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
优秀毕业生求职推荐信范文
2013/11/21 职场文书
求职信范文怎么写
2015/03/19 职场文书
人民调解协议书
2016/03/21 职场文书
聊聊mysql都有哪几种分区方式
2022/04/13 MySQL