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库
如果使用匿名光标(在示例中是这样做的),那么整个查询结果将被读取到内存中。
如果您使用一个命名的光标,那么当它在数据上循环时,它将从服务器中分块读取数据。