我有这个下表:
CREATE TABLE example
(
id text,
users map<text,text>,
lastvisit int,
...
PRIMARY KEY (userid)
);
有时我会更新列或地图条目,例如:
1) update example set users = users - {'JOE'} where id = 'id';
2) update example set users = users + {'JOE':'meta'} where id = 'id';
3) update example set lastvisit = 100 where id = 'id';
我需要知道每个查询如何以墓碑和压缩的方式处理旧数据。
以下是我研究/建议的,但特别是在我缺乏信息的地图上。
通过仅为映射中的条目生成墓碑来删除 key = 'JOE' 处的映射条目。压缩时,该值被丢弃。
将键值对插入映射。旧条目在压缩时被删除,因为有一个新条目。
列条目被更新,就像在 2 中一样,旧值在压缩中被删除
每种情况下的问题是,会再次写入整行还是仅写入具有较新时间戳的更新值?