我想用一些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
和空列表吗?
答案 0 :(得分:2)
与往常一样,Cassandra建议不要插入NULL或尝试插入EMPTY值。它只是拯救了Tombstones,存储,I / O带宽。
Cassandra不区分NULL Vs为空的原因是因为处理删除的方式。在删除Cassandra中的任何记录之前没有读取。所以它只是标记为墓碑并向前推进。
所以实际上你会受到惩罚,将列表初始化为空(基本上是创建墓碑)。