Die standardmäßige MySQLdb
Cursor holt das gesamte Abfrageergebnis auf einmal vom Server. Die Umwandlung dieser Daten in eine Python-Liste von Tupeln kann viel Speicher und Zeit in Anspruch nehmen.
Verwenden Sie MySQLdb.cursors.SSCursor
wenn Sie eine große Abfrage durchführen und die Ergebnisse einzeln vom Server abrufen möchten. Beachten Sie jedoch, dass bei Verwendung von SSCursor kein anderer Abfrage möglich
auf der connection
bis die gesamte Ergebnismenge abgerufen wurde.
import MySQLdb
import MySQLdb.cursors as cursors
connection = MySQLdb.connect(
...
cursorclass = cursors.SSCursor)
cursor = connection.cursor()
cursor.execute(query)
for row in cursor:
...
Oder verwenden Sie oursql , ein alternativer Python-Treiber für MySQL. Eines der Merkmale von oursql ist, dass es Zeilen träge abruft .