1

現在、asp.net mvc4 Web アプリケーションに取り組んでいます。アプリケーションの一部であり、ユーザーはログインしてサイトを閲覧できます。サイトのデータは SQL サーバー データベースに保存され、ユーザー情報などが含まれています。

サイトの新機能は、すべてのユーザーがサイトに表示されている特定の製品にコメントを追加できるようにすることです。何十万もの顧客と何千もの製品が存在する可能性があるため、これは大量のデータです。

そこで、このデータの NoSql オプションを検討し始め、リレーショナル SQL サーバー データベースに保存しませんでした。私はMongo Dbを見てきました。私の最初の質問は、これは私が取っている正しいアプローチですか?

次のトピックでは、c#/.net を mongo データベースと簡単に統合できます。私はこれまでにこれを扱ったことがないので、この分野に関する私の知識は貧弱です。理想的には、特定の製品識別子に基づいて、mongo db に (正しい用語が必要なため) コメントを照会します。このデータを取得するためのクエリ スタイルを記述できると思います。

私の次の質問は、mongo db の冗長性に関するものです。SQL サーバーでは、メインの db サーバーで問題が発生した場合にサーバーをフェールオーバーします。mongo にも同様の概念がありますか、それともどのように機能しますか? 私の考慮事項は、mongoがSQLサーバーデータベースと同じサーバーで実行されることです。mongo db のデータはミッション クリティカルではありませんが、sql サーバーのデータは重要です。私の Web アプリケーションは、負荷分散された環境の複数のサーバーで実行されます。

mongo db を別のサーバーに簡単に移動できますか? すなわち。どれだけうまくスケールアウトできるか。そこからのデータを別のmongo dbにコピーすることもできますか?

私の質問は初心者の基準であることに感謝しますが、現在このトピックについて調査しているので、助けていただければ幸いです。

4

4 に答える 4

1

キャッシュが構成されている限り、コメントを格納するにはSQLサーバーで十分です。SQL Serverの良いところは、外部キーのデータ整合性とクエリ機能です。

ただし、C#でMongoを使用することは大したことではありません。少し学習曲線がありますが、これは新しいテクノロジーを学ぶことです。

MongoDBの接続と使用

MongoDBには、使用できる公式ドライバーとNuGetパッケージがあります。詳細については、 http://www.mongodb.org/display/DOCS/CSharp+Language+Centerを参照してください。

冗長性

Mongoは、2番目のサーバーが最初のサーバーからのすべてのデータを模倣するレプリカセットをサポートしています。これの設定に関する情報はここにあります:http ://docs.mongodb.org/manual/tutorial/deploy-replica-set/ただし、MongoDBではクエリがSQLServerとは少し異なることに注意してください。

現在、私はエンタープライズアプリケーションの1つでmongoDBを個人的に使用していますが、経験則として、絶対に使用する必要がない場合は、1つのデータベースエンジンを使用する方がよいでしょう。ほとんどの場合、1つのデータベースエンジンのみを管理する必要があります。ただ私の意見です。たぶんキャッシングのためにredis?

于 2012-10-18T21:41:25.490 に答える
0

問題はmongodbの設計で、一種の非正規化を行います...

そして、私の意見では、数十万のユーザーケースでは、SQLサーバーで十分です...データベース設計でさらに非正規化を行い、適切なキャッシュ設計を実装してみてください....

あなたはmongodbを初めて使用すると言います...だから、学習曲線があるでしょう...何百万人ものユーザーがいるまで、RAMとCPUを増やしてください...

mongodb を安全に使用するには、少なくとも 3 台のサーバーが必要です

こちらのリンクもご確認ください

これは、シャーディング/スケーリングを可能にするmongodbの最適な最小設定ですか?

于 2012-10-20T18:31:02.927 に答える
0

ハードウェア メモリに問題がない場合 (大量のメモリを購入できますが、必要になります)、Mongo が解決策となります。

于 2012-10-19T08:46:55.837 に答える