大数据量场景下的分块查询和更新 BLOCK 语句

使用 PAGE 语句进行分页读取数据的问题就是不能保证持续稳定的性能,在数据表有主键的情况下,可以使用 BLOCK 语句进行分块查询。

BLOCK 分块读取解决了 PAGE 语句越查越慢的问题,需注意几点问题:

PAGE 语句和 BLOCK 语句都将每次查询的数据保存在缓冲区,当保存或更新到目标数据库后即将这次查询的数据删除,以保证内存不被数据撑爆。所以在数据流转完成时,缓冲区的数据是空的。注意这种情况下不能再通过全局变量@BUFFER访问缓冲区的数据,可用全局变量与 PAGE 基本相同。

BLOCK 语句的另一个应用场景是分块更新。这个场景应用非常少,只是有的关系型数据库更新性能不佳,如 TiDB。TiDB 不支持大批量的数据更新,只能按块更新。

综上,BLOCK 语句只支持 SELECT、DELETE 和 UPDATE 三种带 WHERE 条件的语句。


参考链接


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