gpt4 book ai didi

java - Cassandra 用户维护的 CF 索引

转载 作者:行者123 更新时间:2023-11-29 06:00:23 27 4
gpt4 key购买 nike

这是我希望作为标准列族的 POJO 的一瞥 Cassandra :

class Person {
string key
string name
string dob
List<String> phones
List<String> ids }

显然我的键是我的主索引。不确定如何做 list ?必须为它们创建一个新的 CF,还是将它们全部添加为列?
好的,所以我也希望所有内容都可以通过平等搜索。得到电话= 1112223333的人获取名字=Al 和 dob=yyyy-mm-dd 的人

我说的是 1 亿人,所有列大多都是独一无二的那么这是否排除了内置二级索引?

我“得到”了自己的 CF 作为索引,其中主键是电话,列名是 Person CF 的主键。

但是如果我需要删除手机,给定 key=1234,我该如何维护手机的 CF 索引。TIA Jurgyman

最佳答案

首先,二级索引不会是正确的选择,因为它们在基数较低(即大量重复值)的情况下效果很好。电话号码不满足这一点。它们在技术上可行,但随着集群规模的增长,效率会降低。

您是正确的,如果您需要在没有二级索引的情况下进行双向查找,最好的方法可能是维护您自己的索引。这遵循以您需要阅读数据的方式编写数据的一般设计理念。来自 RDBMS 世界,这可能需要一些时间来适应,因为您已经习惯了规范化。

我认为您缺少的部分是您需要将电话号码存储在两个地方——您的个人 CF 和索引。这将使您可以查看电话中的人和人中的电话。当您需要添加/删除电话时,您将同时在两个地方进行。您只是将保持关系的逻辑从 DBMS 转移到您的应用程序。

关于java - Cassandra 用户维护的 CF 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10368102/

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