【问题标题】:Datastax driver limit optionDatastax 驱动程序限制选项
【发布时间】:2014-05-16 06:44:14
【问题描述】:

我使用 datastax java 驱动程序构造了一个选择查询。我使用限制选项设置限制。但我看到了另一个可以设置的属性

setFetchSize(int size)

DEFAULT_FETCH_SIZE- 5000 根据文档。

http://www.datastax.com/drivers/java/2.0/com/datastax/driver/core/QueryOptions.html#DEFAULT_FETCH_SIZE

这是否意味着如果我在一行中有大约 10000 列,如果我有一个限制为 3 的查询运行,它总是会获取指定的默认值 - 5000 行,然后限制最后 3 行?

我认为限制查询在像这样使用时默认单独获取最后 3 个值。有人可以澄清一下吗?

【问题讨论】:

    标签: cassandra datastax-java-driver cassandra-cli


    【解决方案1】:

    在 cassandra LIMIT 中的工作方式与 mysql 或任何其他 RDBMS 限制不同,

    默认情况下,当您执行选择查询时,它将显示数据直到 10000 列,之后会出现 1 条消息,表明它超出了类似的限制,所以假设您在数据库中有 50000 条记录并且您正在执行选择查询那么只会出现 10000 条记录,所以现在您将执行查询 select * from table LIMIT 50000 在这种情况下将显示所有 50000 条数据..

    【讨论】:

      【解决方案2】:

      LIMIT 设置引擎检索的最大行数,而setFetchSize 设置在一次往返中返回给客户端的最大行数。

      【讨论】:

      • fetch size 的文档是指行,但@Ananth 的问题是关于列(即宽行)。那么您的回答是否暗示当 Cassandra 仅返回 x columns 时也会发生分页?
      【解决方案3】:

      我认为fetchsize和limit之间的区别与JDBC与MySQL等其他数据库相同。

      因此,LIMIT 会将您的查询结果限制在指定范围内。

      提取大小是当您使用 next() 滚动查询 ResultSet 时,驱动程序一次从数据库中物理检索的行数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-20
        • 2016-02-27
        • 2017-01-20
        • 2017-01-26
        • 2016-11-29
        • 2016-11-29
        • 1970-01-01
        • 2018-02-15
        相关资源
        最近更新 更多