栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Cassandra中的IN关系是否对查询不利?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Cassandra中的IN关系是否对查询不利?

我记得不久后有人在Cassandra用户邮件列表中回答了这个问题,但是现在我找不到确切的消息。具有讽刺意味的是,Cassandra传播者Rebecca
Mills刚刚发表了一篇文章解决了这个问题(使用Cassandra驱动程序时应该做的事情
……要点#13和#22)。但是答案是“是”,在某些情况下,多个并行查询要比使用an更快

IN
。根本原因可以在DataStax
SELECT文档中找到


何时不使用IN

…使用IN可能会降低性能,因为通常必须查询许多节点。例如,在一个具有30个节点,复制因子为3且一致性级别为LOCAL_QUORUM的单个本地数据中心群集中,单个键查询针对两个节点,但是如果查询使用IN条件,则将被查询的节点可能更高,最多可达20个节点,具体取决于密钥在令牌范围内的位置。

因此,基于此,随着群集的扩大,这似乎将成为一个更大的问题。

因此,解决此问题的最佳方法(根本不必使用

IN
)是重新考虑此查询的数据模型。在不了解您的架构太多的情况下,也许存在票证ID
1、2、3和4共享的属性(列值)。也许使用了级别或组之类的东西(如果票证用于特定的场所),甚至而是一个事件(id)。

基本上,虽然使用唯一的高基数标识符对数据进行分区 听起来
是个好主意,但实际上,以后(在Cassandra中)查询数据变得更加困难。如果您可以提出另一列来对数据进行分区,那么在这种情况下肯定会对您有所帮助。无论如何,创建一个新的特定列族(表)来处理这些行的查询将是比使用

IN
或多个查询更好的方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449481.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号