gpt4 book ai didi

java - 将 "is_deleted"状态字段作为复合主键放在 cassandra 表上进行读取是一种好的做法吗?

转载 作者:太空宇宙 更新时间:2023-11-04 09:55:15 26 4
gpt4 key购买 nike

我正在 Spring 上设置新的响应式(Reactive) cassandra 休息服务,然后所有表上都有“默认”字段,例如 is_deletedis_activestoreid 等。

因为假设 where 查询需要 is_deleted 。它被创建为复合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;

Example of table

Also here is the DDL

最佳答案

它不会在内部影响 Cassandra,但如果您不需要所有这些 key ,那么您就会不必要地给开发部分带来压力。我个人觉得在 PK 中使用 boolean 值很奇怪,但你的用例可能证明它是合理的。
您可能会说,由于列较多,Cassandra 在计算键的哈希值时可能会产生一些额外的开销,但我怀疑这是否重要,因为哈希函数通常具有高性能。

关于java - 将 "is_deleted"状态字段作为复合主键放在 cassandra 表上进行读取是一种好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54232867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com