Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Schnelleres Python-MySQL

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 .