摘要:之前寫過(guò)篇文章,分別是主從同步的原理主從同步實(shí)戰(zhàn)基于此,我們?cè)賹?shí)現(xiàn)簡(jiǎn)單的讀寫分離,從而提高數(shù)據(jù)庫(kù)的負(fù)載能力。
1、Introduction
之前寫過(guò)2篇文章,分別是:
Mysql主從同步的原理
Myql主從同步實(shí)戰(zhàn)
基于此,我們?cè)賹?shí)現(xiàn)簡(jiǎn)單的PHP+Mysql讀寫分離,從而提高數(shù)據(jù)庫(kù)的負(fù)載能力。
2、代碼實(shí)戰(zhàn)slave_select($sql); $this->res=$res; } //如果不是select,就連接master服務(wù)器 else { $res=$this->master_change($sql); $this->res=$res; } } /** * slave從庫(kù)返回sql查詢結(jié)果 * @param $sql * @return array */ private function slave_select($sql){ //該處只是隨機(jī)獲取slave節(jié)點(diǎn)的ip,當(dāng)然,還可以采用其他算法獲取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主庫(kù)返回sql執(zhí)行結(jié)果 * @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); } /** * 隨機(jī)獲取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]; } /** * 獲取結(jié)果 * @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());
更多精彩,請(qǐng)關(guān)注公眾號(hào)“聊聊代碼”,讓我們一起聊聊“左手代碼右手詩(shī)”的事兒。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/22518.html
閱讀 2251·2023-04-26 01:50
閱讀 712·2021-09-22 15:20
閱讀 2590·2019-08-30 15:53
閱讀 1592·2019-08-30 12:49
閱讀 1712·2019-08-26 14:05
閱讀 2710·2019-08-26 11:42
閱讀 2306·2019-08-26 10:40
閱讀 2597·2019-08-26 10:38