gpt4 book ai didi

cassandra - 将空值插入cassandra

转载 作者:行者123 更新时间:2023-12-04 13:05:02 26 4
gpt4 key购买 nike

我有一些字段要存储到Cassandra中,但是其中某些字段在任何给定点都可以为null。由于它们很多,因此如果我在将每个代码添加到INSERT之前不检查每个代码是否为null的话,它将使代码更具可读性。

这样做有什么危害吗?

编辑!!

我找到了一张吉拉车票。但是我不知道最终从票证中实现了什么解决方案。
https://issues.apache.org/jira/browse/CASSANDRA-7304

最佳答案

Cassandra的新存储引擎的美丽之处在于它不存储值的能力。它的含义是它的本意:空值只是一个不应该存在的值。

这提供了很大的灵活性,因为没有显式(或隐式地看到,请稍后)插入的空值不会占用存储空间,也不会使用处理能力和IO带宽。

确实,用空值填充行非常容易:

INSERT INTO mytable (pk, c2, c3) VALUES (0x1234, null, null);

这样,您明确地告诉C *在c2和c3中都存储一个空值。但是,您可以通过以下方式获得相同的宏观效果:
INSERT INTO mytable (pk) VALUES (0x1234);

注意,我说的是宏观效果,因为当您显式插入空值时,C * 插入引擎盖下的墓碑。从长远来看,由于C *如何执行搜索,压缩等操作,这将使您很痛苦。因此,应尽可能避免使用第二个版本,因为第二个版本的性能会更好。

现在,还有一个陷阱:您还可以隐式地创建墓碑 。当您使用Cassandra内置的 TTL 功能时,此将会发生。

总之,如果您关心自己,我建议不要执行任何空值插入。在应用程序级别进行检查,以后,例如在读取过程中,您可以节省时间(和金钱)。

关于cassandra - 将空值插入cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40713693/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com