2016-11-21 1 views
0

私はCassandraなどのnosqlデータベースを初めて使いました。現在、私はこのセカンダリインデックスとsstable付属のセカンダリインデックスを見ました。私がカサンドラでセカンダリインデックスを使用する目的を混乱させる方法、セカンダリインデックスを持つカサンドラとリレーショナルデータベースの違いは何ですか?照会されたときにどちらの方がパフォーマンスが優れていますか?カサンドラでCassandraとSSTable付きのセカンダリインデックスとリレーショナルデータベース

答えて

1


場合は、SASIを使用する必要があります:あなたは、多基準を必要とする

  • 検索し、あなたが発注/グループ化/スコアリング
  • を必要としないあなたは、主に100行の1000年には必要あり
  • 検索対象の行のパーティションキーを常に知っています(これはネイティブセカンダリインデックスにも適用されます)
  • 静的列をインデックス化する場合は、SASIを避けるべき

を(SASIはそれインデックスパーティション全体以来、何のペナルティを持っていません):あなたがインデックスに非常に広い区画を持っている

  • 、SASIは唯一のパーティションオフセットを与えます。ブロックをスキップするための列インデックスをクラスタリングすることなく、高価なリニアスキャンがまだ実行されています。
  • スレーブの検索待ち時間に強いSLAがあります。あなたのテーブルの半分を取得するのに適していません)SASIと一緒にApache Sparkを使用しない限り、この場合でも検索エンジンは2桁のオーダーで勝ちます。

SASIを本番環境で使用する場合、SASIは書き込み/フラッシュスループット、圧縮処理能力にも影響を与えます修理およびストリーミング操作として。 SASIインデックスファイルはSSTableのライフサイクルに従うので、これはまさに期待されます。

出典:RDBMSでhttp://www.doanduyhai.com/blog/?p=2058

:このような制限はありません。結果を注文し、集約およびグループ化を実行できます。

関連する問題