この記事では、PHP がデータベース クラスターにアクセスする方法を要約および分析します。参考のために皆さんと共有してください:
一般的な方法は 3 つあります:
1. データベース接続を選択するために SQL が読み込まれるかどうかを自動的に判断します:
php DB クラスをインスタンス化するときに、次のものが必要です。例:
$link_w = mysql_connect($w_host,$user,$pwd); $link_r = mysql_connect($r_host,$user,$pwd); //执行sql if(preg_match("/^select/i", trim($sql))) { mysql_query($sql,$link_r); }else { mysql_query($sql,$link_w); }
この方法の利点は、開発者が SQL を実行するときに読み取りと書き込みを区別する必要がないことです。欠点は、読み取りまたは書き込み時に 2 つの接続だけを開く必要があることが多いことです。
2. 呼び出し時に自分で選択します:
通常、SQL を実行する前に書き込み中か読み取り中かを判断できるため、開発者は別の接続を手動で呼び出す必要があります。 例:
$w_db = new DB('w'); $w_db -> query('insert into .....');
SQL が読み取り中の場合:
$r_db = new DB('r'); $r_db -> query('select .....');
は主に、渡されたパラメータを使用して、SQL が読み取られるか書き込まれるかを区別します。開発者は、SQL を呼び出す前に独自の判断を下す必要があります。
3. MySQL プロキシを中間層プロキシとして使用します。これにより、SQL が読み取りであるか書き込みであるかが自動的に判断され、リクエストがサーバーに転送されます。利点は、プログラムのコードを変更する必要がないことです。mysql プロキシを開始するときに、読み取りサーバーまたは書き込みサーバーを指定するだけで済みます。
--proxy-backend-addresses --proxy-read-only-backend-addresses
PHP 関連のコンテンツに興味のある読者は、このサイトの特集をチェックしてください。トピック:「PHP Officeドキュメントスキルまとめ(word、excel、access、ppt含む)」、「php日時の使い方まとめ」、「phpオブジェクト指向プログラミング入門」、「php文字列(ストリング)の使い方まとめ」 , 「php+mysqlデータベース操作入門チュートリアル」と「一般的なPHPデータベース操作スキルのまとめ」
この記事がPHPプログラミングの皆様のお役に立てれば幸いです。
上記は、PHP を使用してデータベース クラスターにアクセスする方法のあらゆる側面をまとめたもので、PHP チュートリアルに興味のある友人に役立つことを願っています。