3

私は長い間従来のリレーショナル データベースを扱ってきたので、nosql、特に Cassandra への移行は大きな変化です。私は通常、起動時にデータベース内のすべてがアプリケーションの内部キャッシュにロードされ、データベースのテーブルに更新がある場合は、対応するキャッシュも更新されるようにアプリケーションを設計します。たとえば、テーブルがある場合Student、起動時にそのテーブル内のすべてのデータが にロードされStudentCache、挿入/更新/削除する場合は、両方を同時に更新するサービスを呼び出します。私の設計の目的は、データベースから直接選択できないようにすることです。

Cassandra では、結合が不要になるように、必要なすべてのデータを含むテーブルを作成するというアイデアがあるため、私のお気に入りの設計はまだ有効なのか、それとも、必要に応じてデータベースから直接 (つまり、1 つのテーブルから) データをクエリする方が効率的かどうかを考えます。 .

4

2 に答える 2

1

すべてのデータをアプリケーションに保存すると、入力に基づいてアプリケーションのパフォーマンスが向上するため、データを直接クエリすることをお勧めします。データ量がターゲット マシンのメモリを決して超えないことがわかっている場合、これは良いことかもしれません。

ただし、この制限を変更する (より高くする) 必要があると判断した場合、問題に直面することになります。このアプローチを採用すると、検索に関しては高速になりますが (最初に結果を並べ替えると仮定すると)、保守性はほとんど損なわれます。

ただし、以前のお気に入りの「アプローチ」は、これを選択する場合でも役立ちます。

于 2013-07-07T20:59:42.210 に答える