Mybatis游标查询超过100k条记录

Mybatis cursor query more than 100k records

使用 Mybatis,我正在从数据库中查询大量数据(大约 50k 条记录),但内存有限,应用程序再次重启。我目前正在使用 List<>,可能是这个问题。

我正在规划Cursor<>,它能解决问题吗?如果记录增长到 100k 以上?

添加游标可以解决您的问题。另一种选择是批处理数据。是否有像 id 这样的字段可以应用批处理?

SELECT TOP(1000) * FROM yourTable WHERE id > {record.id} ORDER BY id

通过这种方式,您可以在循环中检索所需大小的数据集,根据需要使用它,保存最后一个 record.id 并再次调用此查询。这样,即使数据库中的记录数增加,您的应用程序也永远不会 运行 内存不足。