首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主键:查询和更新

主键:查询和更新
EN

Stack Overflow用户
提问于 2016-02-04 01:17:59
回答 1查看 51关注 0票数 0

关于cassandra的小问题。基本上,我的数据有一个状态(已初始化、已执行、已结束...),并且我有不同的计划任务,这些任务将根据带有"IN“子句的状态查询此数据。因此,一个调度器将处理初始化的数据,一个调度器处理已执行的数据,一些调度器同时处理这两个数据,等等。

一旦检索到数据,就会对其进行处理,并相应地更改状态(INITIALIZED -> ENDED -> and )。

问题:为了能够使用in子句,必须在我的表的主键中计算状态。但是当我更新状态的时候。它会在我的表中创建一条新记录,因为UPSERT没有找到具有给定主键的任何数据...

我怎么解决这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2016-02-04 22:28:52

您可以在主键列上创建一个secondary index,而不是将status列包含在主键列中。但是,辅助索引列还不支持IN子句。但是,由于要查找的值数量非常有限,您可以在WHERE子句中使用相等条件,然后在客户端合并结果?

注意,使用二级索引是有代价的。查看"when not to use an index“。在您的案例中,这些要点可能适用:

经常更新或删除的列上的

  • 。请参阅下面对频繁更新或删除的列使用索引的问题。
  • 用于在大分区中查找行,除非查询范围很窄。请参见使用索引在大分区中查找行的问题,除非在下面进行了严格的查询。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35183571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档