gpt4 book ai didi

database - 如何使用 scala sorm 遍历大量记录

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:15 26 4
gpt4 key购买 nike

我想遍历 sorm 中特定表的所有记录,但我想以一种内存效率高的方式进行。

我今天使用的代码是:

Db.query[Items].whereEqual("title", someTitle).fetch.foreach { webCount =>
//do something
}

问题在于此代码在进入每个项目之前首先加载所有记录。有什么办法可以流式传输记录吗?

最佳答案

理想情况下,此类功能需要支持数据库游标,但尚未实现。

然而,这可以通过手动批处理解决:

val results : Stream[ Items ] = {
val batchSize = 256
Stream
.from(0)
.map(Db.query[Items].whereEqual.limit(batchSize).offset(_ * batchSize).fetch)
.takeWhile(_.nonEmpty)
.flatten
}

当然,您可以将此模式包装在效用函数或隐式转换中。

关于database - 如何使用 scala sorm 遍历大量记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25267999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com