2

今、データベースを設計したいのですが、いくつかの動的属性内にいくつかのテーブルがあります。MySQL のような従来の RDBMS を選択して、EAV 設計モデルでそれらを実装できます。でも今は何か新しいことに挑戦したい。NoSQL データベースは動的属性の問題を簡単に解決できると聞いたので、MongoDB と Cassandra のどちらかを選択したいと考えています。

そして、ここに私が設計したいデータベースに関するいくつかの状況があります:

このデータベースには約 200,000 のアイテムがあり、データベースは単一のサーバーに格納されます。

ユーザーがこのデータベースを使用したい場合、主な手順は次のとおりです: ユーザーは最初にテーブル A にアクセスし、テーブル B の外部キーを取得し、次にテーブル B にアクセスして、テーブル C の外部キーを取得します。属性といくつかの動的属性。次に、ユーザーはテーブル C からタプルを取得し、いくつかの値を読み取ってから、このタプルのいくつかの値を変更し、このタプルのいくつかの動的な値を追加する場合があります。

このタプルのほとんどすべてを Excel スプレッドシートから Java のデータベースにインポートします。では、Java のサポートが優れているのはどれでしょうか?

これらのデータをインポートした後は、挿入または削除操作は不要になります。外部ユーザーのほとんどすべての操作は、読み取りと更新です。したがって、このシナリオに適したデータベースはどれですか。

この小さなプロジェクトで NoSQL データベースを使用する必要がないことはわかっていますが、最近試して学びたいと思っています。あなたの答えに感謝します。もし私に別の選択肢があれば、それはとても素晴らしいことです.

4

1 に答える 1

2

あなたが提供した情報を考えると、明確な答えはありません。

テーブル、結合、外部キーの観点からクエリ パターンを説明しました。まず、テーブル間などの参照ではなく、データの埋め込みができないか考えてみることをお勧めします。

http://docs.mongodb.org/manual/core/data-modeling/

私たちのプロジェクトの初期段階では、mongodb を選択しました。現在、一部を Cassandra に移行していますが、この選択を後悔していません。

Mongo は本当にシンプルで柔軟です。開発、スキーマ変更の適用、クエリが非常に簡単です。それはたくさん許します。NoSQL の新規参入者にとっては、ほとんど貴重だと思います。

Cassandra ははるかに高度です。スキーマの設計とクエリ パターンについてさらに考える必要があります。水平スケーラビリティは、NoSQL 市場で最高の 1 つです。Cassandra は、書き込み操作においても大きなアドバンテージを持っています。

多くの Mongodb ユーザーは、2 つの Cassandra を使用しています。ただし、実際のパフォーマンスとスケーラビリティの理由がある場合のみ

しかし、単一のマシンにインストールする予定なので、mongodb で十分かもしれません。データがRAMに収まっている間は、非常に優れた読み取りパフォーマンスがあります。

これらのデータベースには両方とも、十分にサポートされているドライバーがあります。

https://github.com/mongodb/mongo-java-driver

Cassandra については、新しい Datastax ドライバーを参照する価値があります

https://github.com/datastax/java-driver

この小さなプロジェクトで NoSQL データベースを使用する必要がないことはわかっていますが、最近試して学びたいと思っています。

それならMongodbをお勧めします...

于 2013-09-21T21:38:48.677 に答える