15

セカンダリ インデックス (cassandra の場合) は利便性のためだけのものであり、パフォーマンスの向上のためではないと繰り返し聞いています。カーディナリティが低い場合にセカンダリ インデックスの使用が推奨される唯一のケース (column男性または女性の 2 つの値を持つ性別など)

次の例を検討してください。

CREATE TABLE users ( 
userID uuid, 
firstname text, 
lastname text, 
state text, 
zip int, 
PRIMARY KEY (userID) 
);

今のところ、セカンダリ インデックスを作成しない限り、このクエリを実行できませんusersfirstname index

select * from users where firstname='john'

このクエリを実行できるように、このテーブルを非正規化するにはどうすればよいですか: これは、複合キーを使用する唯一の効率的な方法ですか? 他の代替案や提案はありますか?

CREATE TABLE users ( 
    userID uuid, 
    firstname text, 
    lastname text, 
    state text, 
    zip int, 
    PRIMARY KEY (firstname,userID) 
    );
4

3 に答える 3