我正在使用Ruby从PostgreSQL DB中获取行。这是在pg
gem站点(https://deveiate.org/code/pg/PG/Result.html)上描述的单行模式下完成的。
conn.send_query( "first SQL query" )
conn.set_single_row_mode
conn.get_result.stream_each do |row|
# do something with the received row of the first query
end
我按预期分别获取结果集的所有行。然而,对于大型结果集,Ruby似乎将它们保存在内存中。这使得Ruby程序在内存耗尽时终止。
是否有方法释放已处理行的空间?我想我应该使用clear()
或autoclear?
,但我不知道如何使用它,以及究竟要清除什么。
2条答案
按热度按时间zf9nrax11#
尝试使用find_each approve(添加
LIMIT
和OFFSET
)gwbalxhn2#
除非
autoclear?
选项返回true,否则必须调用clear()
,否则会导致内存泄漏。如果你有一个足够大的结果集,你可能也想手动清除。请检查此链接
https://deveiate.org/code/pg/PG/Result.html
祝你好运!