为什么集合不应该用于无限数据?



来自Cassandra文档:

如果用于集合存储的数据有限,则集合是合适的。如果数据具有无限的增长潜力,例如每秒发送的消息或注册的传感器事件,则不要使用集合。相反,使用一个带有复合主键的表,其中数据存储在集群列中。

我正在努力理解为什么会出现这种情况。

假设我有一个消息应用程序,而不是使用PrimaryKey(chatId, timestamp, messageId),我会使用类似PrimaryKey(chatId)messages列,其中messages是聊天中的消息列表。

了解什么?您想添加整个聊天历史记录,即单行单列中的所有消息?你会在普通的sql数据库中这样做吗?否-会有一个表,其中每条消息都是自己的行

除了你将失去在提议的模式中查询消息的所有能力之外——仅仅这一个密钥的大小就会膨胀到集群所需的操作将成为噩梦般的

最新更新