• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP+MYSQL实现读写分离实战详解

php 搞代码 3年前 (2022-01-22) 26次浏览 已收录 0个评论

本篇文章主要介绍了PHP+MYSQL实现读写分离,实例分析了读写分离的技巧,从而提高数据库的负载能力,具有一定的参考价值,有兴趣的可以了解一下。

1、Introduction

之前写过2篇文章,分别是:

Mysql主从同步的原理

Myql主从同步实战

基于此,我们再实现简单的PHP+Mysql读写分离,从而提高数据库的负载能力。

2、代码实战

<?phpclass Db{  private $res;  function __construct($sql)  {    $querystr = strtolower(trim(substr($sql,0,6)));    //如果是select,就连接slave服务器    if($querystr == 'select')    {      $res=$this->slave_select($sql);      $this->res=$res;    }    //如果不是select,就连接master服务器    else    {      $res=$this->master_change($sql);      $this->res=$res;    }  }  /**   * slave从库返回sql查询结果   * @param $sql   * @return array   */  private function slave_select($sql){    //该处只是随机获取slave节点的ip,当然,还可以采用其他算法获取slave_ip    $slave_server=$this->get_slave_ip();    $dsn="mysql:host=$slave_server;dbname=test";    $user='root';    $pass='123456';    $dbh=new PDO($dsn, $user, $pass);    return $dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC);  }  /**master主库返回sql执行结果   * @param $sql   * @return int   */  private function master_change($sql){    $master_server='192.168.33.22';    $dsn="mysql:host=$master_server;dbname=test";    $user='root';    $pass='123456';    $dbh=new PDO($dsn, $user, $pass);    return $dbh->exec($sql);  }  /**   * 随机获取slave-ip   * @return mixed   */  private function get_slave_ip(){    $slave_ips=['192.168.33.33','192.168.33.44'];    $count=count($slave_i<a>本2文来*源gao($daima.com搞@代@#码(网</a><strong>搞gaodaima代码</strong>ps)-1;    $random_key=mt_rand(0,$count);    return $slave_ips[$random_key];  }  /**          * 获取结果   * @return int   */  public function get_res(){    return $this->res;  }}$sql1 = "select * from t1";$sql2 = "insert into t1 (name) values ('haha')";$sql3 = "delete from t1 where id=1";$sql4 = "update t1 set name='Jerry' where id=2";$db = new Db($sql1);//$db = new Db($sql2);//$db = new Db($sql3);//$db = new Db($sql4);var_dump($db->get_res());

以上就是本文的全部内容,希望对大家的学习有所帮助。

相关推荐:

php实现连接mysql数据库的方法

使用wordpress的$wpdb类读mysql数据库做ajax时出现的问题该如何解决

php mysql_list_dbs()函数的用法详解

以上就是PHP+MYSQL实现读写分离实战详解的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP+MYSQL实现读写分离实战详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址