8

以下の CQL クエリを実行すると、次のエラーが発生しました。

等号演算子を含む by-columns 句にインデックス付きの列が存在しません

ageにはすでに副次索引が作成されていることに注意してください。

select * from employee where age > 25

ただし、別のセカンダリ インデックス列がありtypeました。それでそれを使ったら…

select * from employee where type='engineer' and age > 25

ちゃんとした結果が得られたようです。

これはどのように起こりますか?

4

1 に答える 1

13

Cassandra の組み込みセカンダリ インデックスは、B ツリーとは対照的に、ハッシュ スタイルのインデックスに近いものです。

そのため、ルックアップを効率的に実行するには、少なくとも 1 つの等値比較が必要です(追加の列述語は、等値一致のフィルター処理が遅くなります)。

Cassandra のセカンダリ インデックスに関する質問の出発点として、次の wiki ページを試してみてください: http://wiki.apache.org/cassandra/SecondaryIndexes

于 2012-08-13T20:56:29.887 に答える