成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? PHP+MYSQL實現讀寫分離簡單實戰
全站頭部文字 我要出現在這里
PHP+MYSQL實現讀寫分離簡單實戰 759 2024-01-15   

1、Introduction

之前寫過2篇文章,分別是:

Mysql主從同步的原理

Myql主從同步實戰

基于此,我們再實現簡單的PHP+Mysql讀寫分離,從而提高數據庫的負載能力。

2、代碼實戰

<?php
class 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_ips)-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());

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持綠夏網。



主站蜘蛛池模板: 蓝家宝电影| 黄色网址在线免费播放| 新红楼梦电影| 夜生活女王之霞姐| 红色诗歌配画| 白幽灵传奇| 绫濑天| 蹲着吐一地呕吐视频| 回响电影| 丰满妇女做a级毛片免费观看| 管路通| 红海行动演员表| 远景山谷1981美国电影在线观看| 飞艇全天精准计划软件| 大胆艺术| 徐童| 田园个人简历| 一个月经代表七个版本| 丰满美女| 女同性电影| 梁以辰| 全国精神病查询系统官网| 汽球造型| 蜗居爱情| 浙江卫视今日播出节目表| 小数加减法100道题| 周星驰原名| 红髅| 姐妹7完整版| 情侣不雅视频| 李轻扬| 江苏体育频道直播| 天与地越南版| 贵州私人导游| 妈妈的花样年华演员表全部| 中医基础理论试题题库及答案| 电影继父| 安洁拉芽衣| 职业目标评估| 假如我是一坨屎作文| 浙江卫视在几台|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103