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 cache类代码(php数据缓存类)
Apr 15 PHP
php smarty截取中文字符乱码问题?gb2312/utf-8
Nov 07 PHP
浅析PHP原理之变量(Variables inside PHP)
Aug 09 PHP
本地机apache配置基于域名的虚拟主机详解
Aug 10 PHP
php上传图片之时间戳命名(保存路径)
Aug 15 PHP
php计算指定目录下文件占用空间的方法
Mar 13 PHP
PHP扩展开发教程(总结)
Nov 04 PHP
PHP的Yii框架中Model模型的学习教程
Mar 29 PHP
PHP微信API接口类
Aug 22 PHP
详解PHP处理密码的几种方式
Nov 30 PHP
laravel 配置路由 api和web定义的路由的区别详解
Sep 03 PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 09 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
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
2013/06/20 PHP
PHP URL路由类实例
2013/11/12 PHP
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
2016/03/28 PHP
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
2017/06/07 PHP
js null undefined 空区别说明
2010/06/13 Javascript
JS刷新当前页面的几种方法总结
2013/12/24 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
Javascript实现的StopWatch功能示例
2017/06/13 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
微信小程序自定义对话框弹出和隐藏动画
2018/07/19 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
python 捕获shell脚本的输出结果实例
2017/01/04 Python
Python实现可自定义大小的截屏功能
2018/01/20 Python
python列表生成式与列表生成器的使用
2018/02/23 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
2019/06/17 Python
tensorflow常用函数API介绍
2020/04/19 Python
pandas apply使用多列计算生成新的列实现示例
2021/02/24 Python
迪拜领先运动补剂零售品牌中文站:Sporter商城
2019/08/20 全球购物
群众路线批评与自我批评
2014/02/06 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
维修工先进事迹
2014/05/29 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
2014年副班长工作总结
2014/12/10 职场文书
公务员考察材料范文
2014/12/23 职场文书
任长霞观后感
2015/06/16 职场文书
python flask框架快速入门
2021/05/14 Python
利用python做数据拟合详情
2021/11/17 Python