关于python:Psycopg2 cursor.execute返回一个生成器

Psycopg2 cursor.execute return a generator

假设我只有1GB的内存和1TB的硬盘空间。

这是我的代码,我正在使用Postgres数据库。

1
2
3
4
5
6
7
8
9
import psycopg2

try:
   db = psycopg2.connect("database parameters")
   conn = db.cursor()
   conn.execute(query)

   #At this point, i am running
   for row in conn:

对于这种情况,我想假设conn是一个生成器是安全的,因为我在网上似乎找不到明确的答案,而且我不能在我的环境中尝试它,因为我负担不起系统崩溃的代价。

我希望此查询返回的数据超过100GB

我使用的是python 2.7和psycopg2库


如果使用匿名光标(在示例中是这样做的),那么整个查询结果将被读取到内存中。

如果您使用一个命名的光标,那么当它在数据上循环时,它将从服务器中分块读取数据。