1
我想了解這段代碼是做幕後:當迭代遊標時,psycopg2在做什麼?
import psycopg2
c = psycopg2.connect('db=some_db user=me').cursor()
c.execute('select * from some_table')
for row in c:
pass
每PEP 249我的理解是,這是一邊喊Cursor.next()
這是調用Cursor.fetchone()
的等價物。然而,psycopg2
文檔say the following:
當執行一個數據庫查詢,該Psycopg光標通常取 所有後端返回的記錄,將它們轉移到 客戶端進程。
所以我很困惑 - 當我運行上面的代碼時,它是否將結果存儲在服務器上並一個接一個地取出它們,還是一次把所有東西都取出來?