当前位置: 首页 > 知识库问答 >
问题:

选择限制为1的墓碑警告

刘野
2023-03-14
CREATE TABLE test (
    ck INT, 
    pk INT, 
    PRIMARY KEY (ck, pk)
);

for (int i = 1; i < 10000; i++) {
    sessionRW.execute(QueryBuilder.insertInto("test").value("ck", 1).value("pk", i));
}

root@cqlsh:ks> select * from test limit 5;

 ck | pk
----+----
  1 |  1
  1 |  2
  1 |  3
  1 |  4
  1 |  5

(5 rows)


root@cqlsh:ks> delete from test where ck = 1;

root@cqlsh:ks> insert into test(ck,pk) values (1, 0); -- new minimal value
root@cqlsh:ks> select * from test limit 1;

 ck | pk
----+-------
  1 | 0

(1 rows)

WARN  11:37:39 Read 1 live and 9999 tombstoned cells in ks.test (see tombstone_warn_threshold). 1 columns was reque

我不明白为什么cassandra一直在扫描我的表寻找其他结果(因此获取了很多墓碑),因为第一行匹配,我指定我只想要一行。

如果我没有指定限制,我可以理解警告。但是,当第一行与限制1匹配时,扫描整个表有什么意义呢?

共有1个答案

袁法
2023-03-14

好的,我想我找到了答案,答案是cassandra在限制1之后做了另一个查找(就像你做了限制2)。

只需再插入一行:

insert into test(ck,pk) values (1, 1);

现在从测试限制1中选择*;不会触发墓碑错误。

 类似资料:
  • 问题内容: 我看到了很多类似的东西: 与我的偏好: 首选哪一个,为什么? PS我正在使用Python和PosgreSQL。 我的观点是,为什么我可以从结果中获取一行并检查它的第一列是否为真,如果我只能检查是否有任何行,就意味着相同? 问题答案: PostgreSQL似乎足够聪明,可以像在执行计划中清楚看到的那样对待这两个语句。 我对具有〜150000行的本地表进行测试并从条件中选择了〜100的本地

  • 我从一个用spark-kafka-cassandra(在kubernetes上)重写猛犸象spark-kafka-hbase应用程序的初步想法开始。 我有以下数据模型,一个支持全时插入,另一个支持upserts 办法1: 创建表test.inv_positions( location_id int, item bigint, time_id timestamp, sales_floor_qty i

  • 我用以下属性创建了一个Kafka主题 min.cleanable.dirty.ratio=0.01,delete.retention.ms=100,segment.ms=100,cleanup.policy=紧凑 假设我按1111:1,1111:2,1111: null,2222:1的顺序插入k-v对,现在除了最后一条消息,日志压缩在其余消息上运行并清除前两条消息,但保留1111: null 根据

  • 我有几个用Java实现的Kafka消费者,我正在实现一个独立的应用程序来检查记录并删除它们。希望Kafka在压缩主题时删除状态存储。 现在...我对Kafka创建的不同类型的商店有点困惑。对于每一种类型的店铺,我想知道: Kafka删除相应主题中的旧唱片时是否删除? 删除相应主题中的记录时是否删除? 我们是不是被困住了? 我看到的商店类型有以下几种: null

  • 问题内容: 我使用的选择标记的格式允许多次选择,但我希望选择的最大数量为10。使用JavaScript或jquery是否可以? 提前致谢! 问题答案: 这是供您使用的一些完整代码…一定要喜欢Google AJAX API Playground :-) 编辑1: 注意:这只允许您选择5,因为我不想复制/粘贴另外10个选项:-) ​