Cassandra 中的分页问题

问题描述 投票:0回答:1

我正在尝试对 Cassandra 中的记录进行分页。我为此使用分页状态。 情况 1:当我在查询中设置 LIMIT 和获取大小时,它会返回分页状态,直到未达到限制。假设获取大小为 10,限制为 100,它将返回分页状态,直到未检索到 100 条记录,然后返回 null。如何进一步分页?

案例2:当我只设置获取大小并且没有限制时,我可以对所有记录进行分页。

我想了解如果我不设置限制,是否会对性能产生负面影响?

我尝试过有或没有LIMIT。

cassandra pagination cql
1个回答
0
投票

您描述的行为是正确/预期的:

  • 无论您做什么,Cassandra 中的所有请求都会被分页(默认页面大小为 5000)。

  • LIMIT X 
    不会阻止对表进行完整扫描的请求。在 Cassandra 查询中,为了获得良好的性能,
    where
    子句中始终需要分区键,否则您很容易遇到客户端超时(Cassandra 表可以毫无问题地容纳数十亿行)。

// BOTH are quite bad
select * from TABLE LIMIT 1;
select * from TABLE;
  • 如果您将页面大小设置为

    10
    并限制为
    100
    ,客户端将进行寻呼,直到达到 100 个大总数,或者退出或不再记录。您驱动程序逐页获取。

  • Java分页实现示例

  • 分页文档

© www.soinside.com 2019 - 2024. All rights reserved.