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

Warum ist executemany in Python MySQLdb langsam?

Versuchen Sie, das Wort „Werte“ in Ihrer Abfrage klein zu schreiben – dies scheint ein Fehler/eine Regression in MySQL-Python 1.2.3 zu sein.

Die Implementierung von executemany() in MySQL-python gleicht die VALUES-Klausel mit einem regulären Ausdruck ab und klont dann einfach die Werteliste für jede Datenzeile, sodass Sie am Ende genau dieselbe Abfrage wie bei Ihrem ersten Ansatz ausführen.

Leider hat der reguläre Ausdruck in dieser Version sein Flag für die Unterscheidung von Groß- und Kleinschreibung verloren (später behoben in trunk r622 aber nie auf den 1.2-Zweig zurückportiert), so dass es zu einer Iteration über die Daten und zum Auslösen einer Abfrage pro Zeile degradiert.