0

我在 Questdb 中有许多大表,我正在测试使用以下示例在节点应用程序中返回结果:

const all = await client.query("SELECT x FROM mytable;")
console.log(all.rows)
// can get all for this column

我想要类似于分页的东西,我想返回、显示和计算批次的结果,例如,假设批次或分页大小为 1000:

  • 最近的 1000 行
  • 下一批 1000 行
  • ETC。 ...
4

1 回答 1

1

您可以使用以下LIMIT关键字:

const first = await client.query("SELECT x FROM mytable LIMIT 1000;")

可以使用范围获取第二批:

const second = await client.query("SELECT x FROM mytable LIMIT 1000, 2000;")

如果数据集是静态的,这可能没问题,但如果数据集是动态的,并且在您的初始查询和具有范围的查询之间有新记录传入,则可能会有不希望的偏移量。在这种情况下,可能有一种更有效的方法,例如一次性获取更大的批次并将客户端分页为 JSON 或类似内容。

在LIMIT 的 QuestDB 文档中还有其他示例。

于 2021-02-19T10:39:52.783 回答