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

Was ist schneller:mehrere einzelne INSERTs oder ein mehrzeiliger INSERT?

https://dev.mysql.com/doc/refman /8.0/en/insert-optimization.html

Die zum Einfügen einer Zeile benötigte Zeit wird durch folgende Faktoren bestimmt, wobei die Zahlen ungefähre Verhältnisse angeben:

  • Verbinden:(3)
  • Sende Anfrage an Server:(2)
  • Parsing-Abfrage:(2)
  • Zeile einfügen:(1 × Zeilengröße)
  • Einfügen von Indizes:(1 × Anzahl der Indizes)
  • Schließung:(1)

Daraus sollte ersichtlich sein, dass das Senden einer großen Anweisung Ihnen einen Overhead von 7 pro Einfügeanweisung erspart, was im weiteren Lesen des Textes auch besagt:

Wenn Sie viele Zeilen desselben Clients gleichzeitig einfügen, verwenden Sie INSERT-Anweisungen mit mehreren VALUES-Listen, um mehrere Zeilen gleichzeitig einzufügen. Dies ist erheblich schneller (in einigen Fällen um ein Vielfaches schneller) als die Verwendung separater INSERT-Anweisungen für einzelne Zeilen.