2010-12-03 72 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