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 相关文章推荐
几种显示数据的方法的比较
Oct 09 PHP
php数据入库前清理 注意php intval与mysql的int取值范围不同
Dec 12 PHP
PHP导航下拉菜单的实现如此简单
Sep 22 PHP
apache中为php 设置虚拟目录
Dec 17 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
Mar 10 PHP
PHP结合Ueditor并修改图片上传路径
Oct 16 PHP
Linux平台PHP5.4设置FPM线程数量的方法
Nov 09 PHP
php根据地址获取百度地图经纬度的实例方法
Sep 03 PHP
解决Laravel无法使用COOKIE和SESSION的问题
Oct 16 PHP
Centos7安装swoole扩展操作示例
Mar 26 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 PHP
PHP如何获取Cookie并实现模拟登录
Jul 16 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/03/20 PHP
PHP中4种常用的抓取网络数据方法
2015/06/04 PHP
php结合正则获取字符串中数字
2015/06/19 PHP
php采用session实现防止页面重复刷新
2015/12/24 PHP
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
2014/09/25 Javascript
详解JavaScript对象和数组
2015/12/03 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
JavaScript中的call和apply的用途以及区别
2017/01/11 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
angularjs中的$eval方法详解
2017/04/24 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
使用jQuery 操作table 完成单元格合并的实例
2017/12/27 jQuery
vue生成token并保存到本地存储中
2018/07/17 Javascript
代码分析vue中如何配置less
2018/09/28 Javascript
JS实现音乐导航特效
2020/01/06 Javascript
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
遗传算法python版
2018/03/19 Python
python和flask中返回JSON数据的方法
2018/03/26 Python
python实现Flappy Bird源码
2018/12/24 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
python的scipy实现插值的示例代码
2019/11/12 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
Python 炫技操作之合并字典的七种方法
2020/04/10 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
波兰在线儿童和婴儿用品零售商:pinkorblue
2019/06/29 全球购物
自我鉴定怎么写
2014/01/12 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
感恩祖国演讲稿
2014/09/09 职场文书
安全生产标语大全
2014/10/06 职场文书
群众路线对照检查剖析材料
2014/10/09 职场文书
小学科学教学计划
2015/01/21 职场文书
基层党支部承诺书
2015/04/30 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书