我需要存储在一个社区的帖子,每个帖子都有评论。
-假设我只重新生成不经常包含评论的post页面,一开始一天每小时一次,然后每月或每年一次。这意味着很少阅读,但是当我阅读时,我可能一次执行数千次阅读来重新生成页面。
哪种策略是正确的(1) 每个帖子都有一个包含所有评论的表,这意味着如果我得到数百万个帖子,我可能在一个键空间中有数百万个表。但是所有的评论都很容易查询和排序。
(2) 有一个表用于所有帖子,另一个表用于所有评论。如果我需要查找数千条评论来生成一个post页面,那么我必须使用一个辅助键来表示评论链接到哪个post,哪个看起来很慢。这种较慢的性能可能还可以,因为我使用的是定期重新生成的静态页面系统。
我认为(2)是正确的“cassandra”方法,但是(1)如果每个表的开销不太高或者只有在需要重新生成post时才可以加载到内存中,则看起来确实很诱人。
编辑:在与Cassandra闲聊的人聊天后,我唯一的选择似乎是(2)因为内存开销。所以我的问题是:
如果我有10亿条评论,每个帖子1万条,我需要在这10亿条评论中找到这1万条,这是可行的吗?
1条答案
按热度按时间6za6bjd01#
你应该有一个表,为您的所有职位和另一个表的评论每个职位。
post\u id将是分区键,comment\u id将是集群键。它们一起将成为表的主键。
由于post\u id是您的分区键,读取将基于post\u id并按您的comment\u id排序。为一篇文章查找10000条评论仍然非常简单和快速。因为它们将在同一个分区中。