O padrão
MySQLdb
cursor busca todo o resultado da consulta de uma vez do servidor. A conversão desses dados em uma lista de tuplas do Python pode consumir muita memória e tempo. Use MySQLdb.cursors.SSCursor quando você quer fazer uma grande consulta e extrair resultados do servidor um de cada vez. Observe, no entanto, que ao usar o SSCursor, nenhum outro consulta pode ser feita na
connection
até que todo o conjunto de resultados tenha sido buscado. import MySQLdb
import MySQLdb.cursors as cursors
connection = MySQLdb.connect(
...
cursorclass = cursors.SSCursor)
cursor = connection.cursor()
cursor.execute(query)
for row in cursor:
...
Ou use oursql , um driver Python alternativo para MySQL. Um dos recursos do oursql é que ele busca linhas lentamente .