Cassandra (CQL) 中的结果分页

2024-03-16

我想知道如何使用 Cassandra 实现分页。

假设我有一个博客。该博客每页最多列出 10 篇帖子。要访问下一篇文章,用户必须单击分页菜单才能访问第 2 页(第 11-20 篇文章)、第 3 页(第 21-30 篇文章)等。

在 MySQL 下使用 SQL,我可以执行以下操作:

SELECT * FROM posts LIMIT 20,10;

LIMIT 的第一个参数是距结果集开头的偏移量,第二个参数是要获取的行数。上面的示例返回从第 20 行开始的 10 行。

如何在CQL中达到同样的效果?

我在谷歌上找到了一些解决方案,但它们都需要“上次查询的最后结果”。它适用于使用“下一页”按钮来分页到另一个 10 个结果集,但如果我想从第 1 页跳转到第 5 页怎么办?


如果您使用的是 Cassandra 2.0+,则不需要使用令牌。

Cassandra 2.0 具有自动分页功能。 现在它不再是使用令牌函数来创建分页,而是一个内置功能。

现在,开发人员可以迭代整个结果集,而不必关心它的大小是否大于内存。当客户端代码迭代结果时,可以获取一些额外的行,同时删除旧的行。

在 Java 中查看此内容,请注意 SELECT 语句返回所有行,并且检索的行数设置为 100。

我在这里展示了一个简单的语句,但是可以使用准备好的语句加上绑定语句来编写相同的代码。如果不需要,可以禁用自动寻呼。测试各种获取大小设置也很重要,因为您希望保持内存足够小,但又不能太小,以免对数据库进行太多往返。查看this http://datastax.github.io/java-driver/features/paging/博客文章了解分页如何在服务器端工作。

Statement stmt = new SimpleStatement(
                  "SELECT * FROM raw_weather_data"
                  + " WHERE wsid= '725474:99999'"
                    + " AND year = 2005 AND month = 6");
stmt.setFetchSize(24);
ResultSet rs = session.execute(stmt);
Iterator<Row> iter = rs.iterator();
while (!rs.isFullyFetched()) {
   rs.fetchMoreResults();
   Row row = iter.next();
   System.out.println(row);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cassandra (CQL) 中的结果分页 的相关文章

  • ScyllaDB 是否支持 OR 运算符?

    scyladb 中 SELECT 语句的 WHERE 子句中的 OR 条件如何工作 我已经在电子邮件上创建了二级索引 下面的查询工作正常并返回结果 cqlsh gt select from test d emp where email em
  • Cassandra 和二级索引,它们内部如何工作?

    Cassandra 二级索引内部如何运作 文档指出它是某种哈希索引 鉴于我有专栏username foobar 列用户名将是 CF 中的辅助索引 User with RandomOrderingPartitioner 我的假设是否正确 ca
  • Spring-data-cassandra:创建名称为“sessionFactory”的 bean 时出错,并且无法解析对 bean“cassandraTemplate”的引用

    我有一个 springboot 应用程序 在其中连接到 cassandra DB 我的 pom xml parent gt
  • 设计 Cassandra 数据模型的最佳实践是什么? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 以及需要避免哪些陷阱 您有任何交易中断吗 例如 我听说导出 导入 Cassandra 数据非常困难 这让我想知道这是否会妨碍将生产数据
  • 无法使用 datastax java 驱动程序通过 UDT 密钥从 cassandra 检索

    我正在尝试使用用户定义的类型作为分区键将对象存储在 cassandra 中 我正在使用 datastax java 驱动程序进行对象映射 虽然我能够插入到数据库中 但无法检索该对象 如果我更改分区键以使用非 udt 例如文本 我就能够保存和
  • Cassandra CQL v3.0 和复合类型

    我正在浏览以下文档CQLv3 0 http www datastax com docs 1 1 references cql index 我们是否应该在更新中指定复合键并选择 a b 1 以防万一comparator or key vali
  • Spark Scala Cassandra 连接器删除所有行失败,并出现 IllegalArgumentException 要求失败异常

    创建表 CREATE TABLE test word groups group text word text count int PRIMARY KEY group word 插入数据 INSERT INTO test word group
  • cassandra 中的突变是什么?

    cassandra 中的突变是什么 它在做什么 我没有找到任何有关它的完整信息 您可以回答或分享带有手册或说明的链接吗 谢谢 Mutation 是一个由 thrift 生成的类 定义在cassandra thrift文件 您可以在以下位置找
  • Cassandra Nodetool Repair 的具体作用是什么?

    From http docs datastax com en cassandra 2 0 cassandra operations ops repair nodes c html http docs datastax com en cass
  • 我可以在 Cassandra 2.1 中对集合进行多重查询吗?

    在 Cassandra 2 1 中 我们可以通过在列上创建二级索引来查询集合 cqlsh play gt select from songs where tags contains t1 id tags title e99f8f30 d21
  • 了解 nodetool cfstats 中的“键数”

    我是 Cassandra 新手 在本示例中 我使用具有 1 个 DC 和 5 个节点的集群以及复制因子为 3 的 NetworkTopologyStrategy Keyspace activityfeed Read Count 0 Read
  • 如何过滤 Cassandra 中的数据?

    我在应用程序中使用 mySQL 一段时间了 收集的数据越多 速度就越慢 所以我一直在研究 NOSQL 选项 我在 mySQL 中拥有的东西之一是从一堆连接创建的视图 该应用程序在网格中显示所有重要信息 用户可以在此数据集上选择范围 进行搜索
  • Redis AOF fsync(始终)与 LSM 树

    我对日志结构化合并树 LSM 树 的理解是 它利用了附加到磁盘非常快 因为它不需要查找 这一事实 只需将更新附加到预写日志并返回到客户端即可 我的理解是 这仍然提供了立即的持久性 同时仍然非常快 我不认为 Redis 使用 LSM 树 它似
  • Cassandra LWT 读取

    据我了解 LWT 插入始终以 SERIAL 一致性级别完成 如果为 true 这是否意味着读取作为 LWT 插入的行可以安全地以 ANY 一致性级别读取 换句话说 我假设 LWT 插入是完全一致的 使得任何后续读取也完全一致 无论一致性级别
  • Cassandra 安装问题

    按照以下步骤安装 apache cassandra 最新版本 第一次启动时 cassandra f 我得到这个 Exception in thread main java lang NoClassDefFoundError org apac
  • Apache Cassandra 中的复合索引

    我正在尝试设置一个 cassandra 列族 其中一些列上有二级索引 在读回数据时我需要进行过滤 在我最初的测试中 当我一起使用多个索引时 速度会变慢 这是我当前的配置方式 通过 cassandra cli update column fa
  • 在 Cassandra 术语中,TimeUUID 是什么?

    在 Cassandra 术语中 什么是TimeUUID什么时候使用它 TimeUUID 是一个随机的全局唯一标识符 16 字节 十六进制表示示例 a4a70900 24e1 11df 8924 001ff3591711 See http e
  • cassandra 添加列(如果不存在)

    我需要通过 CQL 脚本将新列插入到现有列族中 我想做类似的事情 alter COLUMNFAMILY rules ADD rule template text IF NOT EXISTS 我怎样才能纯粹用 CQL 脚本实现这一点 没有可选
  • Cassandra 已死但 pid 文件存在

    我是 cassandra 新手 尝试在 centos 7 0 上安装 cassandra 2 1 2 完成安装后 执行 cqlsh 命令并创建一些键空间和列族 乍一看 我觉得它工作得很好 但后来我意识到以下问题 1 当我执行 service
  • 带有 Play 框架的 cassandra

    我正在尝试开发一个由两部分组成的应用程序 Web 服务和 Android 应用程序 我计划使用 java play 框架和 cassandra noSQL 数据库来实现我的 Web 服务 我已经找了两天了 我还是不知道该怎么做 我需要集成一

随机推荐

  • 如何处理 Nimbus Look and Feel 中的派生颜色?

    我想要的是使不可编辑的文本区域的背景与其禁用的背景相同 我知道该颜色可以从UIManager用钥匙TextArea disabled DerivedColor color 214 217 223 parent control offsets
  • 是否可以使用引用键在 Rmarkdown 文档中间插入文章的完整参考文献?

    Here http rmarkdown rstudio com authoring bibliographies and citations html我学习如何在文本中间插入引文并在文档末尾生成完整的参考书目 我想知道是否可以使用引用键得到
  • iText 中的 PdfPageEventHelper

    我正在创建一个 pdf 其中每个 pdf 页面的标题将根据当前页码进行自定义 例如 在第一页中 标题是 第一页 在第二页中 标题是 第二页 依此类推 我们现在要做的是将标题添加到 PdfPTable 中 然后我们还将许多其他内容添加到 Pd
  • UIAlertView按钮操作代码

    有谁知道如何对按钮进行操作UIAlertview 如果是这样 请指导我 void alertView UIAlertView alertView didDismissWithButtonIndex NSInteger buttonIndex
  • iframe加载时间限制使用javascript

    我需要在 5000 毫秒后停止加载我的 iframe 页面 我正在使用这些 但它每 5000 毫秒刷新一次 iframe 这是什么问题 请修复它 谢谢
  • PendingIntent 上的“requestCode”有何用途?

    背景 我通过 AlarmManager 使用 PendingIntent 来发出警报 问题 起初我认为为了取消以前的请求 我必须提供我之前用来启动警报的确切请求代码 但后来我发现我错了 因为取消API http developer andr
  • 如何将 pandas 安装到 Visual Studio Code 中?

    我想读取 Excel CSV 文件 经过研究 我意识到我需要import pandas as pd 有没有办法将其安装到 Visual Studio Code 中 我试过打字import pandas as pd 但显示一条红线 我对Pyt
  • 尝试显示位图时,一目了然的应用程序小部件图像崩溃

    当我尝试在应用程序中显示位图图像 我的应用程序图标 时 它工作正常 但当我尝试在 Widget Glance 中显示它时崩溃 这是我的位图代码 val icon packageManager getApplicationIcon com m
  • az devops 登录挂起

    我正在使用 Windows 10 Azure PowerShell Az 模块 DevOps 扩展 0 18 0 我已登录 DevOps 实例并能够运行所有相关命令 现在 我需要登录到不同的组织 项目 每次执行登录子命令时 窗口都会挂起并锁
  • 将两个表中的数据放入一个视图中

    是否可以将两个表 具有相同字段 的数据抓取到一个视图中 基本上 视图将数据视为一张表 是的 使用 UNION CREATE VIEW vw combined AS SELECT FROM TABLE1 UNION ALL SELECT FR
  • SpringBoot 与 Jakarta Validation Api 未使用 @Valid Annotation 进行验证

    我对 Spring boot 和依赖项 jakarta validation api 有疑问 实际上我有一个简单的 DTO 其中包含一些属性 但是当我在 Valid 注释中调用 REST 函数时 此属性并未得到验证 有人能发现我的错误吗 我
  • 在Python中初始化对象列表

    我希望初始化一个不为空的对象数组 列表 类构造函数生成数据 在 C 和 Java 中我会做这样的事情 Object lst new Object 100 我已经查过了 但是有没有一种Python式的方法来完成这个任务 这并不像我想象的那样工
  • 如何在android的非活动类中实现类似“完成”的功能?

    此对话框询问您是否要安装其他应用程序 因此 当单击无按钮时 它必须返回到上一个屏幕 downloadDialog setNegativeButton stringButtonNo new DialogInterface OnClickLis
  • DynamicLINQ - 在字符串内转义双引号

    我正在尝试使用动态过滤系统动态LINQ图书馆 当您执行以下操作时 我一切都会顺利进行 查找名字是鲍勃的人 Context Users Where FirstName Bob 但当我想做的时候遇到了问题 查找名字为 Bob 的人 其中 Bob
  • 如何使用c#在DataGrid(WPF)中显示列表列表

    我有一个标题列表 列 然后是数据行 并希望通过两种方式绑定在 DataGrid 中显示它 List
  • 强制 UIImagePickerController 裁剪方形图像

    我们如何强制 UIImagePickerController 裁剪方形图像 我到处寻找 但没有找到可靠的解决方案 谢谢 var imagePickerController UIImagePickerController UIImagePic
  • 为什么 char 数组必须以空字符结尾?

    为什么 chararray必须以空字符结尾 有什么理由我必须将空字符添加到每个char array 看来他们受到的待遇是一样的 char 数组不必以 null 终止 不依赖于此的标准库函数包括memcpy memmove strncpy 最
  • 数据表删除导出到 pdf 和 excel 时的列

    我在导出到 pdf excel 之前删除列时遇到问题 第二个问题是由于该列 该列的反向部分无法正常工作 这是我使用的代码 document ready function var arrayCol new Array var table ex
  • Python sqlite3在本地成功,但在Github Action上失败

    相同的 python 版本 相同的 sqlite3 版本和相同的文件 但我只是无法传递 Github Action 这是我的 github 操作 https github com CloudAurora Blog blob master g
  • Cassandra (CQL) 中的结果分页

    我想知道如何使用 Cassandra 实现分页 假设我有一个博客 该博客每页最多列出 10 篇帖子 要访问下一篇文章 用户必须单击分页菜单才能访问第 2 页 第 11 20 篇文章 第 3 页 第 21 30 篇文章 等 在 MySQL 下