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

Perché executemany è lento in Python MySQLdb?

Prova a mettere in minuscolo la parola "valori" nella tua query:questo sembra essere un bug/regressione in MySQL-python 1.2.3.

L'implementazione di MySQL-python di executemany() corrisponde alla clausola VALUES con un'espressione regolare e quindi clona semplicemente l'elenco di valori per ogni riga di dati, quindi finisci per eseguire esattamente la stessa query del tuo primo approccio.

Sfortunatamente l'espressione regolare ha perso il flag senza distinzione tra maiuscole e minuscole in quella versione (successivamente corretto nel trunk r622 ma non è mai stato eseguito il backport nel ramo 1.2), quindi passa all'iterazione sui dati e all'esecuzione di una query per riga.