2010-12-03 69 views
3

比方说,我已经在所有的结果集这一点上我想循环后,下面的代码差异查询

cursor = connection.cursor() 
cursor.execute(query) 

正是猜测,第一个是使用fetchone方法

for row in cursor: 
    print row[0] 


for row in cursor.fetchall(): 
    print row[0] 

I 

点之间的差异。

1)首先在每次迭代中运行查询。 2)它使用fetchone方法还是fetchall方法 3)哪个更适合大型结果集?

回答

2

迭代游标的能力是PEP 249定义的可选扩展,确切的语义取决于正在使用的数据库适配器。

+0

我用debugsqlshell检查过它,它好像在cursor.execute方法中运行查询。 (在postgresql上试用过) – yilmazhuseyin 2010-12-03 08:20:24