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 中国語 Web サイトの他の関連記事を参照してください。