首页 > 解决方案 > Cassandra - 不同表中的相同分区键 - 什么时候合适?

问题描述

我以一种方式对我的 Cassandra 进行建模,即我有几个表具有相同的分区键 - Uuid。

每个表都有它的分区键和其他表示我想问的特定查询的数据的列。

例如 - 1 个表具有 Uuid 和关于其状态的列(此表中没有其他集群键),表 2 将包含相同的 Uuid(也没有集群键),但不同的列表示此 Uuid 的数据。

是正确的建模吗?为了将每个表分组以保存特定用例的相关列,在表周围复制相同的分区键是否错误?或者它更喜欢只使用 1 个表并查询它们并为代码中的特定用例获取相关数据?

标签: cassandra-2.0cassandra-3.0partitionscylla

解决方案


这个造型没什么问题。与只有一张表包含两条数据的明显替代方案相比,它是更好还是更差,取决于您的工作量:例如,如果您通常需要读取相同 uuid状态和数据列,那么这些读取如果两个东西都在同一个表中,那么效率会更高,只需要查找一次。如果您总是只读取一个而不是两个都读取,那么从单独的表中读取会更有效。此外,如果这个工作负载不是以读为主,而是以写为主,那么只写一个表而不是两个表会更有效率。


推荐阅读