Wenn Sie psycopg2 verwenden, sollten Sie einen benannten Cursor verwenden, da sonst versucht wird, die gesamten Abfragedaten auf einmal in den Speicher zu lesen.
cursor = conn.cursor("some_unique_name")
cursor.execute("SELECT aid FROM pgbench_accounts")
for record in cursor:
something(record)
Dadurch werden die Datensätze vom Server in Stapeln von 2000 abgerufen (Standardwert von itersize
) und sie dann einzeln an die Schleife weitergeben.