NoSQL に精通している人なら誰でも、この状況に対してどのような良い解決策があるのかを知りに来てください。
ウェブサイト A のデータベースには非常に単純なテーブル xx があります。 フィールド:
id: 自動インクリメント
キー: 値は一意の文字
値: 値は任意の文字列
WebサイトBは、WebサイトAのxxテーブルのデータを毎日読み取る必要があります。
私の現在のアプローチは次のとおりです:
Web サイト A がテーブル xx を操作するたびに、同じ操作がリモート サーバー C の mysql データベースに同期されます。このようにして、Web サイト B は、クエリと表示のために毎日リモート サーバー C からデータを読み取ります。ただし、この方法のパフォーマンスにはまだ問題があります。クエリを実行する場合、リモート サーバー C の mysql データベースに接続する必要があります。Web サイト B はクエリを実行してデータを取得した後、データをローカルにキャッシュしますが、それでも満足のいくものではないと感じます。 。
最近、xx テーブルの保存には NoSQL の方が適していることがわかりました。NoSQL を使用する場合、どうすればよいでしょうか?
私も次の方法を考えました:
ウェブサイト A が xx テーブルを操作するとき、新しいレコードが挿入されるか、レコードが変更されるたびに、特別な世代が生成されます。特定のディレクトリ内の各レコード。対応する txt ファイルの場合、ファイル名がキーであり、ファイルの内容が値です。このようにして、Web サイト B がデータをクエリするたびに、curl Web サイトのディレクトリに対応する txt ファイル名があるかどうかがチェックされ、存在する場合は値が表示されます。この方法の欠点は、Web サイト A の特定のディレクトリに非常に多数の小さなファイルが生成されることです。
あるいは、テーブル xx のデータをファイルに保存する良い方法はありますか?それをウェブサイト B に送信しますか?次に、Web サイト B はローカル クエリおよびその他の操作を実行します。欠点は、Web サイト xx テーブルが更新されるたびに、このファイルを Web サイト B に同期的に転送する必要があることです。
-----解決策---------
1. MySQL マスター/スレーブ。これは、データをオフラインで転送してバックアップする最も簡単な方法です。
2 番目に、投稿者の考えについて話しましょう:
1. すべてのデータを B にアクティブに同期するには、おそらく、無駄なトラフィックを購入するための資金があまりありません。
2. 著者は、コンピュータ ルームの展開については説明していません。同じコンピュータ ルームでは、ディスクとリクエストの量だけを考慮する必要があります。
投稿者には、コンピュータ室の展開の詳細と各サーバーの目的を説明した方がよいでしょう。