我反复听说二级索引(在 cassandra 中)只是为了方便而不是为了更好的性能。当基数较低时建议使用二级索引的唯一情况(例如column
具有男性或女性两个值的性别)
考虑这个例子:
CREATE TABLE users (
userID uuid,
firstname text,
lastname text,
state text,
zip int,
PRIMARY KEY (userID)
);
现在我不能做这个查询,除非我在users
on 上创建一个二级索引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)
);