複数のデータベースから選択することを提案するredisに基づくデータベースレイヤーを完成させたばかりですが、常識的に何をすべきかについて自分自身で経験したことはありません。信頼性は私の最大の焦点です。
スレーブデータベースとマスターデータベースの両方が利用可能なアプリケーションでは、書き込みと読み取りはどのように一般的に編成されていますか?
大物はどうやってそれをやってのけるのですか?
複数のデータベースから選択することを提案するredisに基づくデータベースレイヤーを完成させたばかりですが、常識的に何をすべきかについて自分自身で経験したことはありません。信頼性は私の最大の焦点です。
スレーブデータベースとマスターデータベースの両方が利用可能なアプリケーションでは、書き込みと読み取りはどのように一般的に編成されていますか?
大物はどうやってそれをやってのけるのですか?
ルール1:しないでください。
ルール2:データベースが本当にボトルネックであることを測定して証明するまでは、そうしないでください。ほとんどのWebアプリケーションのボトルネックは、静的コンテンツと古いコンテンツを提供するために必要な時間です。データベーストランザクションとは何の関係もありません。
ルール3:それでも、データベースを複製するのではなく、データをパーティション化する他の方法を検討してください。現在のデータからウェアハウスに履歴を取得します。顧客またはサブジェクトエリアまたはWebアプリケーションごとにデータを、共有が制限されているかまったくない複数のピアデータベースに分割します。
ルール4:代替手段がないことを証明できる場合は、マスタースレーブデータベースを調べます。
それがこの問題に取り組む人々の数です。
シングルマスター、マルチスレーブの場合、多くの場合、すべてのデータ変更クエリをマスターに送信し、すべての選択をスレーブに送信するのと同じくらい簡単です。通常、データベース抽象化レイヤーはこれを簡単に処理できます。 この記事では、この特定の種類のセットアップについて詳しく説明します。