セカンダリ インデックス (cassandra の場合) は利便性のためだけのものであり、パフォーマンスの向上のためではないと繰り返し聞いています。カーディナリティが低い場合にセカンダリ インデックスの使用が推奨される唯一のケース (column
男性または女性の 2 つの値を持つ性別など)
次の例を検討してください。
CREATE TABLE users (
userID uuid,
firstname text,
lastname text,
state text,
zip int,
PRIMARY KEY (userID)
);
今のところ、セカンダリ インデックスを作成しない限り、このクエリを実行できませんusers
。firstname index
select * from users where firstname='john'
このクエリを実行できるように、このテーブルを非正規化するにはどうすればよいですか: これは、複合キーを使用する唯一の効率的な方法ですか? 他の代替案や提案はありますか?
CREATE TABLE users (
userID uuid,
firstname text,
lastname text,
state text,
zip int,
PRIMARY KEY (firstname,userID)
);