21

私は巨大なデータベース(ちょっとワードネット)を持っていて、MySQL|の代わりにCassandraを使用する方が簡単かどうか知りたいです。PostrgreSQL

MySQL私が使っていた人生はすべて、PostrgreSQL関係代数の観点から簡単に考えることができましたが、数週間前にカサンドラについて学び、FacebookやTwitterで使用されていることを知りました。

もっと便利ですか?

ソーシャルネットのデータ、オブジェクト間の関係、ワードネットを保存するために、今日通常どのDBMSが使用されていますか?

4

5 に答える 5

19

銀の弾丸ソリューションのようなものはありません。すべてが特定の問題を解決するために構築されており、独自の長所と短所があります。決定するのはあなた次第です - あなたが持っている問題ステートメントと、あなたの問題に合った最善の解決策は何ですか. Cassandra (NoSQL) または MySQL (RDBMS) のどちらを使用する場合でも、すべてシステムの要件によって決まります。以下は、データベースを決定する際により良い決定を下すのに役立つ情報です。

NoSQL を使用する理由

RDBMS データベースの場合、MySQL、Oracle、MS SQL、PostgreSQL など、このカテゴリのほとんどすべてのデータベースが、ACID プロパティを指向したほぼ同じ種類のソリューションを提供するため、選択は非常に簡単です。NoSQL に関しては、NoSQL データベースごとに異なるソリューションが提供されており、アプリやシステムの要件に最適なソリューションを理解する必要があるため、決定が難しくなります。たとえば、MongoDB は、システムがスキーマのないドキュメント ストアを必要とするユース ケースに適しています。HBase は、検索エンジン、ログ データの分析、巨大な 2 次元の結合のないテーブルのスキャンが必要なあらゆる場所に適している可能性があります。Redis は、ツリー、キュー、リンク リストなどのさまざまなデータ構造のインメモリ検索を提供するように構築されており、リアルタイム リーダー ボード、pub-sub のようなシステムを作成するのに適しています。同様に、このカテゴリには、さまざまな問題に適合する他のデータベース (Cassandra を含む) があります。それでは、元の質問に移り、1 つずつ答えていきましょう。

Cassandra を使用する場合

Cassandra は NoSQL ファミリーの一部であり、非常に重い書き込みシステムが必要であり、保存されたデータの上に非常に応答性の高いレポート システムが必要な場合の問題に対するソリューションを提供します。リクエストごとにログ データが保存される Web 分析のユース ケースを検討し、その周りに分析プラットフォームを構築して、時間別、ブラウザ別、IP 別などのヒット数をリアルタイムでカウントします。ブログ投稿 ( http://blogs.shephertz.com/2015/04/22/why-cassandra-excellent-choice-for-realtime-analytics-workload/ ) を参照して、Cassandra が適しているユースケースについて詳しく理解してください。の。

Cassandra/NoSQL の代わりに RDMS を使用する場合

Cassandra は NoSQL データベースに基づいており、ACID およびリレーショナル データ プロパティを提供しません。ACID プロパティ (たとえば、財務データ) の強い要件がある場合、Cassandra はその場合には適していません。明らかに、それを解決することはできますが、ACID プロパティを処理するために大量のアプリケーション コードを記述することになり、市場投入までの時間が大幅に短縮されます。また、Cassandra でそのようなシステムを管理するのは、複雑で面倒です。

于 2015-08-02T08:27:45.090 に答える
7

「NoSQL」データベースにはさまざまな種類があります。アプリケーションが本当にWordnetに似ている場合は、 Neo4jなどのグラフ データベースを検討する必要があります。

于 2010-03-27T18:09:27.683 に答える
7

あなたのリクエストを分析することをお勧めします。

  1. より多くのクラスターを使用する場合、マシンは NoSQL を使用します
  2. データ モデルが複雑な場合 - NoSQL を使用する効率的な構造が必要です (列のタイプに制限はありません)。
  3. スケールのない少数のマシンに収まり、複数のリクエストに対してスーパー パフォーマンスを必要とせず (たとえば、多くのユーザーが http リクエストを送信するソーシャル ネットワークなど)、販売可能性に関与するとは思わない場合は、RDBMS を使用します ( Postgres には、配列列タイプなど、使用できるいくつかの優れた関数と構造があります)。

Cassandra は、多目的の大規模なデータでより適切に機能するはずです。neo4j - 特別な構造、グラフに適しています。

于 2010-03-28T13:37:05.483 に答える
4

Cassandra やその他の NoSQL ストアは、大規模な書き込みベースの操作が必要なため、ソーシャル ベースのサイトに使用されています。MySQL と Postgres がこれを達成できないわけではありませんが、一般的に言えば、NoSQL ははるかに少ない時間と費用で済みます。

ただし、オブジェクト モデルのニーズという観点から、Neo4J を見たいと思うかもしれません。

于 2010-03-29T03:25:18.737 に答える
0

すべての異なる製品で、すべてに長所と短所があります。どのような問題を解決する必要がありますか?

結核のように巨大?

于 2010-03-27T17:56:08.307 に答える