最初に、 NoSql はリレーショナル データベースとは異なるため、比較するのは難しいというあなたの意見は非常に正しいと言いたいです。そうは言っても、比較できる2つの間には多くの大きな違いがあります。
スケーリング
MySql データベースをシャーディングすることはできますが、RDMS が複数のマシン上にある場合、シャーディングとACID プロパティの適用に問題があります。問題なくクラスター化。Cassandra データベースは簡単に拡張できるだけでなく、パフォーマンスが低下することもありません。
スキーマ(レス) モデル。
NoSQL データベース システムは、固定スキーマに従わない大量のデータを管理するために開発されました。これは、たとえば、Cassandra の既存の列ファミリーに新しい列を追加する場合、戻って列ファミリーを修正する必要がないため、次のようにする必要がないことを意味します。
ALTER TABLE table_name ALTER COLUMN column_name datatype;
代わりに、新しい列を追加するだけで、次の「テーブル」になる可能性があります。
key | follower1 | follower2 | follower2
-------------+------------+-------------+-----------
lyubent | joeb | chuckn | gordonf
chuckn | joeb | gordonf
gordonf | chuckn
joeb | chuckn | lyubent | joeb
これにより、データ モデルを柔軟かつ簡単に拡張できますが、そうするとデータの構造化が不十分になります。
速度NoSql データベースは高い書き込み速度
に最適化されていますが、RDBM は高い読み取り速度を目指しています。しかし、それを念頭に置いても、読み取りに関しては、NoSql ソリューションは依然として RDBM システムよりも優れている傾向があります。これは、ACID プロパティやトランザクションなど、リレーショナル モデルの読み取り/書き込み/更新操作を遅くする関数の多くが NoSql データベースに実装されていないためです。
いつ使用する必要がありますか?
- アプリケーション/Web サイトは急速に成長する必要がありますが、最初は小さく始めたいと考えています。
- データを読み戻すよりも、データを書き込むことに関心があります。(たくさんのつぶやきが投稿されていますが、すべてが読まれているわけではありません)
- システムの可用性は、データが 100% 更新されることよりも重要です。(したがって、銀行の場合は NoSql は必要ありませんが、100% のアップタイムが必要な Web サイトの場合は、NoSql を選択することをお勧めします)。
- 書き込まれるデータが 100% の確率で成功する必要があるが、結果整合性は問題にならない場合。
視覚的な説明として、これは、さまざまな SQL ソリューションがデータベースの世界のどこに適合し、それぞれが目的にどのように適合するかを理解するのに大いに役立ちました。