Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi executemany est-il lent dans Python MySQLdb ?

Essayez de mettre en minuscules le mot 'values' dans votre requête - cela semble être un bogue/régression dans MySQL-python 1.2.3.

L'implémentation de MySQL-python de executemany() correspond à la clause VALUES avec une expression régulière, puis clone simplement la liste de valeurs pour chaque ligne de données, de sorte que vous finissez par exécuter exactement la même requête qu'avec votre première approche.

Malheureusement, l'expression régulière a perdu son drapeau insensible à la casse dans cette version (corrigé par la suite dans le tronc r622 mais jamais rétroporté vers la branche 1.2), il se dégrade donc en itérant sur les données et en lançant une requête par ligne.