MySQL讀寫分離有好幾種方式
1、MySQL中間件
2、MySQL驅動層
3、程式碼控制
關於中間件和驅動層的方式這裡不做深究,暫且簡單介紹下如何透過PHP程式碼來控制MySQL讀寫分離。
我們都知道 “讀” 在SQL語句裡是 “SELECT”, ”寫” 是 “INSERT”,那我們應該在第一時間想到 字串截取 substr() 這個函數。
首先我們透過substr()函數來取得到 sql語句的前6個字元是否為 “SELECT” 如果是,我們連接讀取伺服器進行處理,如果不是,我們連接寫入伺服器進行處理。
實例程式碼:
$querystr = strtolower(trim(substr($sql,0,6))); //截取SQL语句字符串 //如果是select,就连接slave(从)服务器 if($querystr == 'select') { $slave_server='192.168.80.3::3306'; $dsn="mysql:host=$slave_server;dbname=3d"; $user='root'; $pass='root'; $dbh=new PDO($dsn, $user, $pass); $res=$dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC); } //如果不是select,就连接master(主)服务器 else { $master_server='192.168.33.22::3306'; $dsn="mysql:host=$master_server;dbname=3dprintsys"; $user='root'; $pass='123456'; $dbh=new PDO($dsn, $user, $pass); $res=$dbh->exec($sql); }
推薦教學:PHP影片教學
以上是php讀寫分離怎麼實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!