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代码
Mar 24 PHP
检查用户名是否已在mysql中存在的php写法
Jan 20 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
Oct 16 PHP
php无限极分类递归排序实现方法
Nov 11 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
Dec 18 PHP
PHP中的Session对象如何使用
Sep 25 PHP
标准版Eclipse搭建PHP环境的详细步骤
Nov 18 PHP
总结PHP删除字符串最后一个字符的三种方法
Aug 30 PHP
PHP基于GD库的图像处理方法小结
Sep 27 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
php用xpath解析html的代码实例讲解
Feb 14 PHP
Laravel5.1 框架路由基础详解
Jan 04 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生成静态页的实现方法
2013/05/10 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
2013/07/05 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
2013/10/25 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
学习并汇集javascript匿名函数
2010/11/25 Javascript
浅析Js中的单引号与双引号问题
2013/11/06 Javascript
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
学习Vue组件实例
2018/04/28 Javascript
详解vue 数组和对象渲染问题
2018/09/21 Javascript
Bootstrap的aria-label和aria-labelledby属性实例详解
2018/11/02 Javascript
uni-app之APP和小程序微信授权方法
2019/05/09 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
python生成密码字典的方法
2018/07/06 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
如何使用repr调试python程序
2020/02/28 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
python 基于selenium实现鼠标拖拽功能
2020/12/24 Python
基于PyTorch中view的用法说明
2021/03/03 Python
英国计算机产品零售商:Novatech(定制个人电脑、笔记本电脑、工作站和服务器)
2018/01/28 全球购物
波兰在线杂货店:Polski Koszyk
2019/11/02 全球购物
internal修饰符起什么作用
2013/12/16 面试题
岗位职责风险防控
2014/02/18 职场文书
2014年工商所工作总结
2014/12/09 职场文书
敬老院义诊活动总结
2015/05/07 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
导游词之崇武古城
2019/10/07 职场文书