卡桑德拉可以拿一张空名单吗?

时间:2018-03-26 18:06:58

标签: cassandra cql

我想用一些list<int>字段创建一个Cassandra集合并插入一个空列表;

CREATE TABLE test (
    name text PRIMARY KEY,
    scores list<int>,
);

INSERT INTO test (name, scores)  VALUES ('John', []);

但是,这会返回null

SELECT * FROM test;


 name |scores
------+------------
 John | null

Cassandra不区分null和空列表吗?

1 个答案:

答案 0 :(得分:2)

与往常一样,Cassandra建议不要插入NULL或尝试插入EMPTY值。它只是拯救了Tombstones,存储,I / O带宽。

Cassandra不区分NULL Vs为空的原因是因为处理删除的方式。在删除Cassandra中的任何记录之前没有读取。所以它只是标记为墓碑并向前推进。

所以实际上你会受到惩罚,将列表初始化为空(基本上是创建墓碑)。