Domyślna MySQLdb
Kursor pobiera od razu cały wynik zapytania z serwera. Konwersja tych danych do listy krotek w Pythonie może zająć dużo pamięci i czasu.
Użyj MySQLdb.cursors.SSCursor
gdy chcesz wykonać ogromne zapytanie i pobierać wyniki z serwera pojedynczo. Pamiętaj jednak, że podczas korzystania z SSCursor żadne inne zapytanie można wykonać
na connection
dopóki cały zestaw wyników nie zostanie pobrany.
import MySQLdb
import MySQLdb.cursors as cursors
connection = MySQLdb.connect(
...
cursorclass = cursors.SSCursor)
cursor = connection.cursor()
cursor.execute(query)
for row in cursor:
...
Lub użyj oursql , alternatywny sterownik Pythona dla MySQL. Jedną z cech naszego sql jest to, że leniwie pobiera wiersze .