微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python postgres我可以fetchall()100万行吗?

我在python中使用psycopg2模块从postgres数据库中读取,我需要对列中的所有行进行一些操作,该行有超过100万行.

我想知道cur.fetchall()会失败还是导致我的服务器出现故障? (因为我的RAM可能不会那么大,无法保存所有数据)

q="SELECT names from myTable;"
cur.execute(q)
rows=cur.fetchall()
for row in rows:
    doSomething(row)

更聪明的方法是什么?

解决方法:

fetchall()最多可获取arraysize限制,因此为了防止对数据库造成大量攻击,您可以以可管理的批次获取行,或者只是单步执行游标直到其耗尽:

row = cur.fetchone()
while row:
   # do something with row
   row = cur.fetchone()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐