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

Leistung Mehrere Einfügungen oder einzelne Einfügungen mit mehreren Werten

Ja, im Allgemeinen ist das Masseneinfügen schneller als das einzelne Einfügen, da es die zwischenzeitliche Kommunikation vermeidet, die für jede Einfügeanweisung auftrat.

Aber manchmal führt es zu Problemen, da Insert/Update-Anweisungen exklusive Sperren für Tabellen/Zeilen erwerben, was bedeutet, dass kein anderer Prozess/Verbindung zu diesem Zeitpunkt die Tabelle verwenden kann.

Wenn Sie mehrere Prozesse haben, die DB gleichzeitig verwenden, von denen einige aus der Tabelle lesen und andere schreiben, werden ganze Operationen zum Zeitpunkt Ihrer Masseneinfügung gesperrt/gestoppt

Daher sperrt die Masseneinfügung die Tabelle für mehr Zeit als die Einzeleinfügung, was zu Problemen für andere Prozesse führen kann, wenn die Sperrzeit länger ist und die DB nicht darauf abgestimmt ist.

Wenn Sie nur ohne andere Operation in die DB einfügen, dann gehen Sie zur Masseneinfügung aus einer Datei (was viel schneller ist) und wenn Sie andere Prozesse eingerichtet haben, passen Sie die Masseneinfügungshäufigkeit unter Berücksichtigung der Sperrung an.

Mögliche Duplikate sind Update-Anweisungen Is Massenaktualisierung schneller als Einzelaktualisierung in db2?