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

Python+MySQL – Masseneinfügung

Es gibt einen klügeren Weg.

Das Problem bei Masseneinfügungen ist, dass standardmäßig Autocommit aktiviert ist wodurch jedes insert verursacht wird -Anweisung im stabilen Speicher gespeichert werden, bevor die nächste Einfügung initiiert werden kann.

Wie die Handbuchseite anmerkt:

SET autocommit=0; 

Dies ist ein ziemlich häufiges Merkmal von RDBM-Systemen, die davon ausgehen, dass die Datenbankintegrität von größter Bedeutung ist. Es bewirkt, dass Masseneinfügungen in der Größenordnung von 1 s pro Einfügung statt 1 ms dauern. Die Alternative, eine übergroße Insert-Anweisung zu machen, versucht, diesen einzelnen Commit zu erreichen, wobei das Risiko besteht, dass der SQL-Parser überlastet wird.