el cursor.fetchall
significa que carga todos sus datos en la memoria a la vez, en lugar de hacerlo lentamente cuando es necesario.
Reemplazar
row = cur.fetchall()
for row in rows:
por
for row in cur:
el cursor.fetchall
significa que carga todos sus datos en la memoria a la vez, en lugar de hacerlo lentamente cuando es necesario.
Reemplazar
row = cur.fetchall()
for row in rows:
por
for row in cur: