Christian Kruse: 200 Werte hintereinander in eine MYSQL Datenbank schreiben

Beitrag lesen

Hallo Mitleser,

Rennt das oder performed es ebenfalls mies?

Inserts mit mehreren Werten sind „nur“ syntaktischer Zucker über mehrere Inserts nacheinander. Man spart sich Roundtrips. Klar, das bringt etwas, aber vermutlich nicht viel. Wenn das tatsächlich nennenswert Performance bringt, würde das auf Netzwerk-Probleme hindeuten.

Für Bulk-Inserts haben die Datenbanken ansonsten auch Tips. Bei MySQL ist das stark abhängig von dem Tabellen-Treiber.

Für InnoDB gilt im wesentlichen: wrappe alles in eine Transaktion und schalte alle Checks für Unique und Foreign Keys aus – davon würde ich allerdings abraten, wenn man nicht gerade in einer Umgebung ist, bei der einem keiner in die Quere kommen kann…

Bei MyISAM ist es komplizierter.

Nichtsdestotrotz: wenn 200 Inserts so viel Zeit benötigen, dann läuft was schief. Ich würde mir da eher sowas wie Trigger oder so anschauen. Oder ist das eine Umgebung mit sehr vielen konkurrierenden Zugriffen? In dem Fall könnte es ein Locking-Problem sein… so oder so, außer „das sieht komisch aus“ kann man nicht viel sagen bei der Informationslage…

LG,
CK