Psycopg2 cursor.execute返回一个生成器

时间:2016-04-05 03:00:47

标签: python database postgresql

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

这是我的代码,我使用的是postgres数据库。

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是一个生成器,因为我似乎无法在线找到明确的答案,我无法在我的环境中尝试它,因为我无法承受系统崩溃。

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

我正在使用python 2.7和psycopg2库

1 个答案:

答案 0 :(得分:5)

如果使用您在示例中执行的匿名游标,则整个查询结果将被读入内存。

如果您使用named cursor,那么当它循环遍历数据时,它将以块的形式从服务器读取。