【发布时间】:2015-12-24 11:24:49
【问题描述】:
我是第一次玩 Cassandra,我觉得我了解基本知识和限制。例如,我正在使用以下模型来存储由标签收集的推文。
create table posts
(
id text,
status text,
service text,
hashtag text,
username text,
caption text,
image text,
link text,
repost boolean,
created timestamp,
primary key (hashtag, created)
);
这非常适合我需要的查询类型:
select * from posts where hashtag = 'demo' order by created desc;
但是,如果我理解正确的话,我可以使用单数“演示”分区键存储的帖子数量有一个上限,更重要的是,匹配“演示”分区键的整个帖子集将有与每个副本一起存储。如果我理解正确,我可能应该使用更随机或可变的分区键(可能是帖子的id),但我不知道使用什么不会改变查询的要求。
如果我使用id 作为分区键(例如PRIMARY KEY (id, created))并在主题标签列上添加二级索引,我在运行查询时会收到以下错误:
ORDER BY with 2ndary indexes is not supported.
我知道要使用 ORDER BY,分区键必须包含在 where 子句中,因此我最初的想法是使用 hashtag。
是我想多了还是有更好的分区键候选者?
【问题讨论】: