MySQLdb
по подразбиране курсорът извлича целия резултат от заявката наведнъж от сървъра. Преобразуването на тези данни в списък с кортежи на Python може да отнеме много памет и време.
Използвайте MySQLdb.cursors.SSCursor
когато искате да направите огромна заявка и да изтеглите резултати от сървъра един по един. Имайте предвид обаче, че когато използвате SSCursor, никакво друго може да се направи заявка
на connection
докато не бъде извлечен целият набор от резултати.
import MySQLdb
import MySQLdb.cursors as cursors
connection = MySQLdb.connect(
...
cursorclass = cursors.SSCursor)
cursor = connection.cursor()
cursor.execute(query)
for row in cursor:
...
Или използвайте oursql , алтернативен драйвер на Python за MySQL. Една от характеристиките на oursql е, че извлича редове мързеливо .