mysqldb extrae el resultado de la consulta completa en un solo fragmento, incluso si solo hago un fetchone.

Así que si lo hago

 import MySQLdb
 conn = MySQLdb.connect(...)
 cur = conn.cursor()
 cur.execute("SELECT * FROM HUGE_TABLE")
 print "hello?"
 print cur.fetchone() 

Me parece que MySQLdb obtiene toda la enorme mesa antes de que llegue a la "impresión". Anteriormente asumí que hacía algún tipo de "recuperación de estado / cursor" en el fondo, pero a mí no me lo parece. ¿Es esto correcto? Si es así, ¿es porque tiene que ser así o se debe a una limitación del protocolo de conexión de MySQL? ¿Esto significa que java / hibernate se comportan de la misma manera?

¿Supongo que necesito usar las cláusulas de MySQL "límite 1" y familiares si quiero caminar a través de una mesa grande sin jalar todo de una vez? ¿O no? Gracias por adelantado.

Respuestas a la pregunta(3)

Su respuesta a la pregunta