【问题标题】:Is there a limit to size of array in SELECT ~ WHERE IN (huge_array)?SELECT ~ WHERE IN (huge_array) 中的数组大小是否有限制?
【发布时间】:2020-05-11 03:38:10
【问题描述】:

我在 Cassandra 中使用了一个糟糕的查询,想知道 WHERE IN (array) 子句中可以包含多少项?

SELECT COUNT(*)
FROM my_keyspace.my_table
WHERE uuid IN (
  94e60226-da89-44ab-8255-716e1a2e9e98,
  92c3e7b1-d5bd-45f4-ae1d-b5e2033bb5c2,
  3b3f4335-e11c-4695-805b-453ffdfb664d,
  9134fa1e-a199-4cd9-b45c-0243c6e7c0b2,
  efa99981-ded0-4462-ba2e-73f7e08467ab,
  ...
);

我已经成功查询了多达 1000 个项目,但我担心进一步扩展它,并且一直将我的查询分成多个批次。有谁知道有上限吗?

我在Cassandra docs 中没有找到任何内容。

【问题讨论】:

标签: cassandra cql


【解决方案1】:

我不知道 IN 子句中的项目数量是否有硬性或软性限制,我认为没有。

但总的来说,select IN ... 在从多个分区中获取数据时无法很好地扩展,因为每个分区可能在不同的节点中,它会创建许多节点间通信,那么它也会对合并结果时的协调器节点。

它被归类为反模式 以下是文档的一些链接:

https://docs.datastax.com/en/ddaccql/doc/cql/cql_reference/cql_commands/cqlSelect.html#cqlSelect__selectInNot

一篇关于该主题的有趣文章: https://lostechies.com/ryansvihla/2014/09/22/cassandra-query-patterns-not-using-the-in-query-for-multiple-partitions/

我希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多