Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL Python più veloce

Il MySQLdb predefinito cursore recupera l'intero risultato della query in una volta dal server. La conversione di questi dati in un elenco Python di tuple può consumare molta memoria e tempo.

Usa MySQLdb.cursors.SSCursor quando vuoi fare una query enorme ed estrarre i risultati dal server uno alla volta. Si noti, tuttavia, che quando si utilizza SSCursor, nessun altro è possibile effettuare una query sulla connection fino a quando l'intero set di risultati non è stato recuperato.

import MySQLdb
import MySQLdb.cursors as cursors
connection = MySQLdb.connect(
    ...
    cursorclass = cursors.SSCursor)
cursor = connection.cursor()
cursor.execute(query)
for row in cursor:
    ...

Oppure, usa oursql , un driver Python alternativo per MySQL. Una delle caratteristiche di oursql è che recupera le righe pigramente .