有没有办法在Cassandra中找出INSERT / UPDATE命令导致创建新行或更新旧行?
我问的原因是因为我们希望保持表中行数的计数。
谢谢!
答案 0 :(得分:4)
从根本上说,如果不放弃大量性能,你就无法做到这一点,因为你会削弱存储引擎的日志结构特性,并且因为你需要锁定以避免与其他客户进行竞争。如果你可以做得很好,Cassandra会开箱即用!
因此,“正确”的解决方案是弄清楚如何在没有精确行数的情况下生活,或者根据应用程序的行为做出假设(“99%的情况下,此类更新适用于新行“),或两者兼而有之。
答案 1 :(得分:0)
您可以在执行更新/插入之前查询Cassandra。如果查询指示存在行,则表示它将是更新而不是插入。
答案 2 :(得分:0)
Noob发言
您可以使用计数器。这仅适用于较长的值,这将增加而不是覆盖该值。