【发布时间】:2017-05-17 15:02:27
【问题描述】:
我有一个有 400 万行的表,我使用 psycopg2 来执行:
SELECT * FROM ..WHERE query
我以前没有听说过服务器端光标,当您期望有很多结果时,我正在阅读它的一个好习惯。
我发现文档有点有限,我有一些基本问题。
首先我将服务器端游标声明为:
cur = conn.cursor('cursor-name')
然后我将查询执行为:
cur.itersize = 10000
sqlstr = "SELECT clmn1, clmn2 FROM public.table WHERE clmn1 LIKE 'At%'"
cur.execute(sqlstr)
我的问题是:我现在该怎么办?如何获得结果?
我是否遍历行:
row = cur.fetchone()
while row:
row = cur.fetchone()
或者我使用 fetchmany() 并这样做:
row = cur.fetchmany(10)
但在第二种情况下,我如何“滚动”结果?
还有什么是迭代大小?
【问题讨论】:
标签: python postgresql psycopg2 database-cursor