我一直听说在Cassandra中,二级索引只是为了方便而不是为了提高性能。唯一建议使用二级索引的情况是当您的基数很低时(例如gender column
只有两个值:男或女)
考虑以下示例:
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)
);