关于MySQL的读写分离有几种方法:中间件,Mysql驱动层,代码控制

关于中间件和Mysql驱动层实现Mysql读写分离的方法,今天暂不做研究,

这里主要写一点简单的代码来实现由PHP代码控制MySQL的读写分离。

准备工作:两个Mysql服务器,已经配置好主从,如果没配置过Mysql主从,请参考我上一篇博文:《mysql实现主从复制》

       主服务器192.168.1.101;

       从服务器:192.168.1.105;

思路就是封装一个类,用于对数据库的操作,

这里只是写出一个简单的demo,用于理解php控制读写分离的思想,仅作抛砖引玉只用。

class Db
{
function __construct($sql)
{
$querystr = trim($sql);
$querystr = substr($sql,,);
//如果是查询语句就连接从服务器
if($querystr == 'select')
{
$conn = mysql_connect('192.168.1.105:3306','root','');
mysql_select_db('test');
mysql_query('set names utf8'); $data = array();
$res = mysql_query($sql);
while ($row = mysql_fetch_assoc($res)) {
$data[] = $row;
} print_r($data);
echo '<br/>';
echo mysql_get_host_info($conn).'||'.mysql_get_server_info($conn).'||'.mysql_get_proto_info($conn);
}
//如果不是查询语句就连接主服务器
else
{
$conn = mysql_connect('192.168.1.101:3306','root','');
mysql_select_db('test');
mysql_query('set names utf8'); mysql_query($sql);
echo mysql_affected_rows();
echo '<br/>';
echo mysql_get_host_info($conn).'||'.mysql_get_server_info($conn).'||'.mysql_get_proto_info($conn);
}
}
} $sql1 = "select * from a";
$sql2 = "insert into a (name) values ('Alice')";
$sql3 = "delete from a where id=5";
$sql4 = "update a set name='Jerry' where id=4"; //$model1 = new Db($sql1);
//$model2 = new Db($sql2);
//$model3 = new Db($sql3);
$model4 = new Db($sql4);

PHP代码实现MySQL读写分离的更多相关文章

  1. 转:Mysql读写分离实现的三种方式

    1 程序修改mysql操作类可以参考PHP实现的Mysql读写分离,阿权开始的本项目,以php程序解决此需求.优点:直接和数据库通信,简单快捷的读写分离和随机的方式实现的负载均衡,权限独立分配缺点:自 ...

  2. MySQL读写分离技术

    1.简介 当今MySQL使用相当广泛,随着用户的增多以及数据量的增大,高并发随之而来.然而我们有很多办法可以缓解数据库的压力.分布式数据库.负载均衡.读写分离.增加缓存服务器等等.这里我们将采用读写分 ...

  3. php实现MySQL读写分离

    MySQL读写分离有好几种方式 MySQL中间件 MySQL驱动层 代码控制 关于 中间件 和 驱动层的方式这里不做深究  暂且简单介绍下 如何通过PHP代码来控制MySQL读写分离 我们都知道 &q ...

  4. mysql读写分离总结

    随着一个网站的业务不断扩展,数据不断增加,数据库的压力也会越来越大,对数据库或者SQL的基本优化可能达不到最终的效果,我们可以采用读写分离的策略来改变现状.读写分离现在被大量应用于很多大型网站,这个技 ...

  5. mysql读写分离 主从同步

    MySQL主从复制与读写分离的实现 转载 2013年01月17日 18:20:12   MySQL主从复制与读写分离 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy) ...

  6. 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变

    [Mysql主从复制]解决的问题数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了.负载均衡:M ...

  7. mysql读写分离实战

    一个完整的MySQL读写分离环境包括以下几个部分: 应用程序client database proxy database集群 在本次实战中,应用程序client基于c3p0连接后端的database ...

  8. 使用Amoeba实现mysql读写分离机制

    Amoeba的实用指南 http://docs.hexnova.com/amoeba/ 如何实现mysql读写分离 : 通常来说有两种方式: 1,应用程序层实现 2,中间件层实现 应用层实现 应用层实 ...

  9. MySQL读写分离-架构

    MySQL读写分离-架构 简介 对于很多大型网站(pv值百万.千万)来说,在所处理的业务中,其中有70%的业务是查询(select)相关的业务操作(新闻网站,插入一条新闻.查询操作),剩下的则是写(i ...

随机推荐

  1. uva 11168

    题意:给出平面上的n个点,求一条直线,使得所有点在该直线的同一侧且所有点到该直线的距离和最小,输出该距离和. 思路:要使所有点在该直线的同一侧,明显是直接利用凸包的边更优.所以枚举凸包的没条边,然后求 ...

  2. CI支持各种文件上传-文件类型(Linux + window)

    $mimes = array( 'hqx' => 'application/mac-binhex40', 'cpt' => 'application/mac-compactpro', 'c ...

  3. 【转载】IP首部、TCP首部、UDP首部

    [转载自]http://blog.csdn.net/hjffly/article/details/7959889 IP首部 版本:L3协议版本号,IPv4或IPv6 首部长度:单位为4字节 协议:L4 ...

  4. [读书笔记]了不起的node.js(三)

    这周的nodejs学习内容为几个依赖包的使用,把书上的例子都敲了一遍.这篇就以例程为线索,复习一下一周的工作. 1.connect 这个例程主要是使用connect依赖包,connect提供一个中间件 ...

  5. Redis的探究

    之前大四时候实习的公司有使用过Redis,不过那时所有配置均由主管完成了,而我也只是处于能使用的阶段. 时隔1年多,近期回想起这货,在研究中,想把它整合进现在公司的网站系统中,做做数据快照(已完成)和 ...

  6. Django – vicalloy's trac

    Django – vicalloy's trac Search:

  7. Java for循环的几种用法详解

    本文非常适合初学Java的程序员,主要是来了解一下Java中的几种for循环用法,分析得十分详细,一起来看看. J2SE 1.5提供了另一种形式的for循环.借助这种形式的for循环,可以用更简单地方 ...

  8. 优步(UBER)发布2016年春节出境游出行报告

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  9. RS485连接CAN——应急用法【worldsing笔记】【待完善】

    阅读前提:假设读者对CAN总线和485总线有一定了解. RX485连接CAN用法提出背景: 在一般情况下只能是CAN对CAN 485对485, 但是在调试过程中难免对出现设备没有CAN接口,或是没有4 ...

  10. java类的访问控制符与其他几个特殊修饰符的总结

    1  访问控制符 1.1 字段或者方法的访问控制符   同一个类中 同一个包中 不同包中的子类 不同包中的非子类 private YES       默认(包可访问) YES YES     prot ...