PHP+MYSQL實現讀寫分離簡單的範例程式碼

來源:互聯網
上載者:User
本篇文章主要介紹了PHP+MYSQL實現讀寫分離,執行個體分析了讀寫分離的技巧,從而提高資料庫的負載能力,具有一定的參考價值,有興趣的可以瞭解一下。

1、Introduction

基於此,我們再實現簡單的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_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());

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.