如果值已经是 MD5,Cassandra 会避免计算行 MD5 吗?

Will Cassandra avoid calculating the row MD5 if the value already is an MD5?

从关于 Cassandra 的各种文档中,它清楚地表明它在将行键保存到数据库之前将它们转换为 MD5。

如果我的行键已经是 MD5 和,有没有办法让 Cassandra 知道,从而避免让它计算那个 MD5 的 MD5?

P.S。我说的 table 里面有文件,键是文件 MD5 和。

Cassandra 实际上所做的是根据分区器定义的内容对分区键进行哈希处理。最初的分区器是 MD5,但现代版本的 Cassandra 默认为 Murmur3(不是 QUITE murmur3,但基本上是 murmur3)。

在任何一种情况下,是的,Cassandra 对分区键进行哈希处理,因为没有办法让 Cassandra 知道它已经是 MD5。

如果您真的想要避免散列,您可以查看其他替代分区器(例如 byte ordered or order preserving ), or write your own that implements IPartitioner 。但是请注意,如果您确实使用不同的分区程序,它用于集群中的所有 tables/keyspaces。