【问题标题】:Can Cassandra hold an empty list?Cassandra 可以持有一个空列表吗?
【发布时间】:2018-03-27 08:48:13
【问题描述】:

我想创建一个带有一些 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 和空列表吗?

【问题讨论】:

    标签: cassandra cql


    【解决方案1】:

    Cassandra 一如既往地建议不要插入 NULL 或尝试插入 EMPTY 值。它只是从墓碑、存储、I/O 带宽中拯救自己。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-12
      • 2016-05-12
      • 1970-01-01
      • 1970-01-01
      • 2014-09-20
      • 2018-06-23
      • 2015-05-23
      • 2010-09-25
      相关资源
      最近更新 更多