0

我正在使用 ScalikeJDBC 获取一个大表,将数据转换为 JSON,然后调用每个包含 50 个 JSON 对象(行)的 Web 服务。这是我的代码:

val rows = sql"SELECT * FROM bigtable"
val jsons = rows.map { row =>
  // build JSON object for each row
}.toList().apply()
jsons.grouped(50).foreach { batch =>
  // send 50 objects at once to an HTTP server
}

这可行,但不幸的是,中间列表很大并且消耗大量内存。我正在寻找一种以“惰性”方式迭代结果集的方法,类似于foreach,但我想迭代 50 行的批次。ScalikeJDBC 有可能吗?


我通过填充和清除可变列表而不是使用来解决内存问题grouped,但我仍在寻找更好的解决方案。

4

1 回答 1

0

尝试指定fetchSize.

另见:http ://scalikejdbc.org/documentation/operations.html#setting-jdbc-fetchsize

于 2016-06-15T16:03:24.933 回答