11

最近、NoSQL について多くの話題がありました。

人々が NoSQL を使用する一番の理由は、パフォーマンスを向上させるために DBMS データを非常に非正規化し始め、最終的に 1 つのテーブル内にすべてのデータが含まれる 1 つのテーブルになってしまうためです。

ただし、マテリアライズド ビューを使用すると、NoSQL を使用するのと同じ理由で、データを正規化したまま、単一のテーブル ビューとして格納できます。

では、マテリアライズド ビューではなく NoSQL を使用するのはなぜでしょうか。

4

3 に答える 3

6

理由の 1 つは、大量の INSERT と SELECT がある OLTP 状況ではマテリアライズド ビューのパフォーマンスが低下することです。

データが挿入されるたびに、マテリアライズド ビューのインデックスを更新する必要があります。これにより、挿入が遅くなるだけでなく、選択も遅くなります。NoSQL を使用する主な理由はパフォーマンスです。基本的にハッシュ キー ストアであることにより、非常に高速な読み取り/書き込みが可能になりますが、通常はアプリケーション レイヤーで実行する必要がある制約の制御が少なくなります。

したがって、マテリアライズド ビューは読み取りには役立つかもしれませんが、書き込みの高速化には何の役にも立ちません。

于 2010-04-09T13:47:46.960 に答える
4

NoSQL は、SQL データベースのパフォーマンスを向上させることではありません。データが SQL にある特別な理由がまったくない場合に、デフォルトの SQL ストレージ以外のオプションを検討することについてです。

適切に設計されたスキーマを持つ確立された SQL データベースがあり、唯一の新しい要件がパフォーマンスの向上である場合、インデックスとビューを追加することは間違いなく正しいアプローチです。

キーによってのみアクセスする必要があることがわかっているユーザープロファイルオブジェクトを保存する必要がある場合、SQL は最良の選択肢ではない可能性があります。使用しないあらゆる種類のクエリ機能を備えたシステムからは何も得られませんが、使用するクエリのパフォーマンスを向上させながら ORM 層を除外できることは、非常に価値があります。

于 2010-04-10T10:47:05.590 に答える
0

もう 1 つの理由は、NoSQL の動的な性質です。作成する各ビューは、事前に作成し、アプリケーションがそれをどのように使用するかについて「推測」する必要があります。

NoSQL を使用すると、データの変更に合わせて変更できます。アプリケーションに合わせてデータを動的に変更します。

于 2015-07-21T17:55:39.403 に答える