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
Dec 13 PHP
PHP中HTTP方式下的Gzip压缩传输方法举偶
Feb 15 PHP
PHP实现生成透明背景的PNG缩略图函数分享
Jul 08 PHP
PHP反向代理类代码
Aug 15 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
Dec 19 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
Dec 25 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
May 20 PHP
PHP获取客户端及服务器端IP的封装类
Jul 21 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
PHP+Ajax实现的博客文章添加类别功能示例
Mar 29 PHP
可兼容php5与php7的cURL文件上传功能实例分析
May 11 PHP
laravel5.1 ajax post 传值_token示例
Oct 24 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 服务器调试 Zend Debugger 的安装教程
2009/09/25 PHP
精美漂亮的php分页类代码
2013/04/02 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
PHP编写登录验证码功能 附调用方法
2016/05/19 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
Symfony查询方法实例小结
2017/06/28 PHP
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
利用js(jquery)操作Cookie的方法说明
2013/12/19 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
jquery+ajax+C#实现无刷新操作数据库数据的简单实例
2014/02/08 Javascript
JS 获取浏览器和屏幕宽高等信息代码
2014/03/31 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
微信小程序 animation API详解及实例代码
2016/10/08 Javascript
EditPlus中的正则表达式 实战(4)
2016/12/15 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
2016/12/26 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
Python编写生成验证码的脚本的教程
2015/05/04 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
Python实现八皇后问题示例代码
2018/12/09 Python
Python如何使用vars返回对象的属性列表
2020/10/17 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
幼儿园校车司机的岗位职责
2014/01/30 职场文书
服装电子商务创业计划书
2014/01/30 职场文书
环境卫生工作汇报材料
2014/10/28 职场文书
煤矿施工安全协议书
2016/03/22 职场文书
Python基础 括号()[]{}的详解
2021/11/07 Python