我在spring上设置了新的React式cassandrarest服务,然后有一个“default”字段,比如 is_deleted
, is_active
, storeid
,等等。
因为假设where查询需要删除。它被创建为一个复合pk,这样数据搜索会更快。
问题是因为,主键非常胖,搜索查询变得太长,因为它需要提到所有默认键。
在Cassandra上有这样的脂肪复合pk是一个好的做法吗?
@PrimaryKeyColumn(name = BaseCassandraFields.STORE_ID, type = PrimaryKeyType.PARTITIONED)
protected String storeId;
@PrimaryKeyColumn(name = BaseCassandraFields.IS_DELETED, type =
PrimaryKeyType.PARTITIONED)
protected Boolean isDeleted = false;
表格示例
还有ddl
1条答案
按热度按时间643ylb081#
它不会在内部影响cassandra,但是如果您不需要所有这些键,那么您就不需要在开发部分施加压力。我个人觉得在pk中使用布尔值很奇怪,但是您的用例可能会证明这一点。
您可能会认为,由于列数较多,cassandra在计算键的哈希时可能会有一些额外的开销,但我怀疑这是否有意义,因为哈希函数通常具有高性能。