问题
有没有办法找出 Cassandra 中的 INSERT/UPDATE 命令导致创建新行或更新旧行?
背景
我问的原因是因为我们想维护表中行数的计数。
谢谢!
从根本上说,你不能在不放弃很多性能的情况下做到这一点,因为你会削弱存储引擎的日志结构性质,并且因为你需要锁定以避免与其他客户端的竞争。如果您可以高效地做到这一点,Cassandra 会开箱即用!
所以“正确”的解决方案是弄清楚如何在没有确切行数的情况下生活,或者根据您的应用程序正在做的事情做出假设(“99% 的时间,这种更新是针对新行”),或两者。
您可以在更新/插入之前查询 Cassandra。如果查询指示存在一行,则您知道它将是更新而不是插入。
菜鸟说话
你可以使用柜台。这仅适用于长值,这将增加而不是覆盖该值。