ホームページ >バックエンド開発 >PHPチュートリアル >PHP データベースでの読み取りと書き込みの分離の典型的な例

PHP データベースでの読み取りと書き込みの分離の典型的な例

WBOY
WBOYオリジナル
2016-07-25 08:56:011625ブラウズ
  1. /**
  2. * mysql の読み取りと書き込みの分離
  3. * 編集: bbs.it-home.org
  4. */
  5. class db
  6. {
  7. public function __construct($sql)
  8. {
  9. $chesr = strto lower(trim($sql));
  10. // SQL を判定ステートメントに select キーワードがある場合は読み取りデータベースに接続し、そうでない場合は書き込みデータベースに接続します
  11. if(substr($chesr,0,6)=='select')
  12. {
  13. echo '私は使用していますselect db..< ';
  14. $link = mysql_connect("127.0.0.1:3306", "root", "") または die("接続できませんでした: " . mysql_error());テスト");
  15. $ result = mysql_query($sql);
  16. while ($row = mysql_fetch_array($result, MYSQL_NUM))
  17. {
  18. printf("%s %s", $row[0],$row[1] ]);
  19. }
  20. echo mysql_get_host_info($link).mysql_get_server_info($link).mysql_get_proto_info($link).mysql_get_client_info().'
    ' }
  21. else
  22. {
  23. echo '挿入データベースを使用しています..
    ';
  24. $link = mysql_connect("127.0.0.2:3306","root","") または die("接続できませんでした: " .mysql_select_db("test") );
  25. $result = mysql_query($sql);
  26. echo @mysql_affected_rows($result);
  27. echo mysql_get_host_info($link).mysql_get_server_info($link).mysql_get_client_info().'
    '; }
  28. }
  29. }
  30. $d = new db(" update `users` set `select`='fasdf' where `id` =1");
  31. $d2 = new db(" SELECT * from ` users`");
  32. コードをコピー
データベースの読み書き共有の説明を添付します。
データベースの読み取りと書き込みを分離することで、データベースへの負荷を効果的に軽減できます。
読み取りと書き込みの分離を実現するための 1 つのマスター データベースと複数のスレーブ データベースのアーキテクチャは、一般的に使用されるソリューションです。 マスター データベースは書き込み操作を提供し、スレーブ データベースは読み取り操作を提供します。 実際、データベースへの負荷を分散するには、必ずしも読み取りと書き込みを分離する必要はありませんが、読み取りと書き込みを分離すること自体に多くの利点があります。 例えば: 1. データベースの負荷分散の実装に役立ちます。 2. マスタースレーブデータベースのホットバックアップを実現します。分離されていない場合は、双方向のホット バックアップ戦略を検討する必要があります。 こちらのほうが構成が複雑ですし、トラブルが起きたときも面倒です。 3. 特にデータベース クラスター環境において、データベースの高可用性を維持するのに役立ちます。 4. 最後に、読み取りと書き込みが分離されていることを理解すると、mysql のクエリ速度と安定性にさらに自信が持てるようになります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。