2009-06-25 15 views
1

私は現在、データベースエンジン用のPHPアプリケーションとドライバ(クラス)を作成しています。レプリケーションのサポート(master-slave)を書く必要があるのだろうかと思いましたか?私はこれに少し新しくなっています。ロードバランシング/レプリケーションをサポートしたいのであれば、私のプロジェクトやクラスで心配すべきことは何ですか?ああ、これはMySQLに関するものです。私のデータベースドライバクラスは、複製(PHP)をサポートする必要がありますか?

答えて

1

マスタースレーブデータベースを使用する方法は、すべての「アクティブな使用」にマスターを使用し、すべてのレポートに対してスレーブを使用することです(データがまだ「キャッチアップ」しているかどうかは関係ありません) 。必要に応じて、マスタ上でデータ操作が行われ、スレーブ上ですべてのデータ読み込みが行われます。これは、挿入や更新をブロックしている場合に特に役立ちます。 (注:可能であれば、「挿入遅延」のMySQL構文も考慮してください)。

これまでPHPがサポートしていた限り、複数のデータベース必要に応じてマスター(読み取り/書き込み)またはスレーブ(ONLY READ)db接続を使用します。

+0

複数の接続をきれいに処理し、ユーザーがマスター/スレーブシステムをセットアップできる優れたクラスを知っていますか? – Tower

+0

正直なところ、ここに示すように(そして同じチュートリアルの他の部分では)そのままのPHPを使用することを推奨します:http://www.freewebmasterhelp.com/tutorials/phpmysql/4 手順を一回実行してください基本的にはmysql_connect mysql_select_db、mysql_query、mysql_close)を使用してマスターを接続し、次に異なるデータベースターゲットを使用してスレーブを接続します。必要に応じて各コードチャンクを使用します。 – DreadPirateShawn

1

スレーブを使用して書き込みを行うと思ったら、クラスは少なくとも一度に複数の接続をサポートする必要があります。

私が使用したAPIが表示されます。この方法を選択すると、クラスを送信できます。

ShusterDb :: getInstance( 'read') - > select($ sql); //これがメソッドのSELECTであることを確認します。 ShusterDb :: getInstance( 'write') - >スカラー($ sql);

0

あなたがクラスを送ることができれば、私はそれを見たり、おそらくそれを使うことに興味があります。