大数据量场景下的分页查询 PAGE 语句

在大数据量场景下,由于内存限制,内存中不能存储太多的数据。但是又有大数据量的流转需求。PQL 提供了一系列的语句,来实现分页或分块读取以及分块写入。这些语句在多线程模式下运行,会尽可能压榨机器资源以提高性能。

PAGE 语句是 GET 语句的一个高级版本,适用于大数据量下的分页读取,并通过 PUT 语句BATCH 语句将数据保存到目标数据源。这个操作是一个持续的过程,一边读一边写,直到所有数据读取并写入完成。PAGE 语句仅支持关系数据库的 SELECT 查询。

上例可以理解为是一个多线程程读加单线程写操作(多线程写见 BATCH 语句),使用 SQL 语句的LIMIT进行分页读取,其中占位符@{offset}固定,不可修改。这种方式的缺点是越到后面查询越慢,与数据库本身的机制有关。

上例是 PAGE 语句支持的第二种格式,按主键位置进行查询,占位符@{id}的名称必须与主键名称一致。这种方式的效率基本是固定的,但是不在多线程下运行。适用于数据量不是特别大的场景。

因为 PAGE 语句是多次查询且数据不进缓冲区,所有与 GET 语句的全局变量有一点点不同。

如果你要查询的表有自增主键,期望一个查询稳定且多线程版本操作,请参阅 BLOCK 语句


参考链接


微信公众号
码农老吴  |  星源工作室  |  开发月志  |  问题反馈
联系我们:wu@qross.io     手机/微信:18618171102
京 ICP 备 20027445 号
$(h1)!