我在 Questdb 中有许多大表,我正在测试使用以下示例在节点应用程序中返回结果:
const all = await client.query("SELECT x FROM mytable;")
console.log(all.rows)
// can get all for this column
我想要类似于分页的东西,我想返回、显示和计算批次的结果,例如,假设批次或分页大小为 1000:
- 最近的 1000 行
- 下一批 1000 行
- ETC。 ...
您可以使用以下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 文档中还有其他示例。