我正在寻求有关有效地从Postgres表中逐步流式传输数据到Python的建议。我正在实现一种在线学习算法,并希望将训练示例的批次从数据库表中读入内存以进行处理。对于最大化吞吐量的好方法,您有什么想法吗?感谢您的建议。
我正在寻求有关有效地从Postgres表中逐步流式传输数据到Python的建议。我正在实现一种在线学习算法,并希望将训练示例的批次从数据库表中读入内存以进行处理。对于最大化吞吐量的好方法,您有什么想法吗?感谢您的建议。
如果您正在使用psycopg2,则需要使用命名游标,否则它会尝试一次将整个查询数据读入内存。
cursor = conn.cursor("some_unique_name")
cursor.execute("SELECT aid FROM pgbench_accounts")
for record in cursor:
something(record)
这将按照2000批(itersize
的默认值)从服务器获取记录,然后一个接一个地分配给循环。
itersize
;参见 http://initd.org/psycopg/docs/cursor.html - Craig Ringer