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 调试环境(IIS+PHP+MYSQL)
Jan 10 PHP
用PHP控制用户的浏览器--ob*函数的使用说明
Mar 16 PHP
PHP备份/还原MySQL数据库的代码
Jan 06 PHP
php笔记之:文章中图片处理的使用
Apr 26 PHP
php+mysql大量用户登录解决方案分析
Dec 29 PHP
php内存缓存实现方法
Jan 24 PHP
php实现递归的三种基本方式
Jul 04 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
Mar 09 PHP
PHP pear安装配置教程
May 14 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
May 05 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
May 02 PHP
PHP利用curl发送HTTP请求的实例代码
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
php截取utf-8中文字符串乱码的解决方法
2010/03/29 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
js 返回时间戳所对应的具体时间
2010/07/20 Javascript
js通过googleAIP翻译PHP系统的语言配置的实现代码
2011/10/17 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
2014/04/11 Javascript
JQuery限制复选框checkbox可选中个数的方法
2015/04/20 Javascript
jQuery判断多个input file 都不能为空的例子
2015/06/23 Javascript
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
详解javascript实现自定义事件
2016/01/19 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
推荐11个实用Python库
2015/01/23 Python
python微信跳一跳系列之色块轮廓定位棋盘
2018/02/26 Python
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
2018/05/17 Python
python爬虫实现中英翻译词典
2019/06/25 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
python plotly画柱状图代码实例
2019/12/13 Python
django-利用session机制实现唯一登录的例子
2020/03/16 Python
序列化Python对象的方法
2020/08/01 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
C语言面试题
2015/10/30 面试题
弘扬民族精神演讲稿
2014/05/07 职场文书
巾帼志愿者活动方案
2014/08/17 职场文书
小学生美德少年事迹材料
2014/08/24 职场文书
2014年消防工作总结
2014/11/21 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
太行山上观后感
2015/06/05 职场文书
Vue中插槽slot的使用方法与应用场景详析
2021/06/08 Vue.js
Python编解码问题及文本文件处理方法详解
2021/06/20 Python