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 相关文章推荐
初学者入门:细述PHP4的核心Zend
Sep 05 PHP
转换中文日期的PHP程序
Oct 09 PHP
PHP计划任务、定时执行任务的实现代码
Apr 23 PHP
PHP冒泡排序算法代码详细解读
Jul 17 PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 PHP
php去除HTML标签实例
Nov 06 PHP
PHP URL参数获取方式的四种例子
Feb 28 PHP
php解决约瑟夫环示例
Apr 09 PHP
Laravel框架路由配置总结、设置技巧大全
Sep 03 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
Apr 04 PHP
PHP调用Mailgun发送邮件的方法
May 04 PHP
在 Laravel 中动态隐藏 API 字段的方法
Oct 25 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使用自定义方法实现数组合并示例
2016/07/07 PHP
PHP对称加密函数实现数据的加密解密
2016/10/27 PHP
javascript的函数
2007/01/31 Javascript
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
Python切片操作去除字符串首尾的空格
2019/04/22 Python
python 字典操作提取key,value的方法
2019/06/26 Python
浅谈python图片处理Image和skimage的区别
2019/08/04 Python
SpringBoot实现登录注册常见问题解决方案
2020/03/04 Python
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
中兴通讯全球官方网站:ZTE
2020/12/26 全球购物
初三学习决心书
2014/03/11 职场文书
销售个人求职信范文
2014/04/28 职场文书
难忘的一天教学反思
2014/04/30 职场文书
医院信息公开实施方案
2014/05/09 职场文书
安全责任书模板
2014/07/22 职场文书
世界读书日的活动方案
2014/08/20 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
大学生第一学年自我鉴定2015
2014/09/28 职场文书
民主生活会剖析材料
2014/09/30 职场文书
2014年检验科工作总结
2014/11/22 职场文书
前台文员岗位职责
2015/02/04 职场文书
机关工会工作总结2015
2015/05/26 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书
Python3.10的一些新特性原理分析
2021/09/15 Python
一次线上mongo慢查询问题排查处理记录
2022/03/18 MongoDB