El MySQLdb
predeterminado el cursor obtiene el resultado completo de la consulta a la vez desde el servidor. La conversión de estos datos a una lista de tuplas de Python puede consumir mucha memoria y tiempo.
Use MySQLdb.cursors.SSCursor
cuando desee realizar una consulta enorme y extraer los resultados del servidor de uno en uno. Tenga en cuenta, sin embargo, que al usar SSCursor, ningún otro se puede hacer consulta
en la connection
hasta que se haya obtenido todo el conjunto de resultados.
import MySQLdb
import MySQLdb.cursors as cursors
connection = MySQLdb.connect(
...
cursorclass = cursors.SSCursor)
cursor = connection.cursor()
cursor.execute(query)
for row in cursor:
...
O utilice oursql , un controlador de Python alternativo para MySQL. Una de las características de oursql es que obtiene filas perezosamente .