Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Por que o executemany é lento no Python MySQLdb?


Tente colocar a palavra 'values' em minúsculas em sua consulta - isso parece ser um bug/regressão no MySQL-python 1.2.3.

A implementação do MySQL-python de executemany() corresponde à cláusula VALUES com uma expressão regular e, em seguida, apenas clona a lista de valores para cada linha de dados, então você acaba executando exatamente a mesma consulta da sua primeira abordagem.

Infelizmente, a expressão regular perdeu seu sinalizador que não diferencia maiúsculas de minúsculas nessa versão (posteriormente corrigida no tronco r622 mas nunca fez backport para a ramificação 1.2), então ele se degrada para iterar sobre os dados e disparar uma consulta por linha.