4

问题

有没有办法找出 Cassandra 中的 INSERT/UPDATE 命令导致创建新行或更新旧行?

背景

我问的原因是因为我们想维护表中行数的计数。

谢谢!

4

3 回答 3

4

从根本上说,你不能在不放弃很多性能的情况下做到这一点,因为你会削弱存储引擎的日志结构性质,并且因为你需要锁定以避免与其他客户端的竞争。如果您可以高效地做到这一点,Cassandra 会开箱即用!

所以“正确”的解决方案是弄清楚如何在没有确切行数的情况下生活,或者根据您的应用程序正在做的事情做出假设(“99% 的时间,这种更新是针对新行”),或两者。

于 2013-05-23T17:53:57.860 回答
0

您可以在更新/插入之前查询 Cassandra。如果查询指示存在一行,则您知道它将是更新而不是插入。

于 2013-05-20T22:28:46.493 回答
0

菜鸟说话

你可以使用柜台。这仅适用于长值,这将增加而不是覆盖该值。

于 2013-09-11T12:47:14.623 回答