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

So fügen Sie eine sehr große Anzahl von Datensätzen so schnell wie möglich in eine MySql-Datenbank ein

Es gibt eine Reihe von Möglichkeiten, Massenbeilagen zu optimieren. Einige sind:

  • LOAD DATA INFILE . Es gibt eine Wrapper-API für . NET . Dies ist der schnellste Weg, hat aber einige Einschränkungen und semantische Unterschiede zu einfachen Einfügungen.

  • Mehrzeiliges INSERT Anweisungen:

    INSERT INTO temperature (temperature) VALUES (1.0), (2.0), (3.0), ...

    Sie sollten nicht 20.000.000 Zeilen auf einmal einfügen, aber Sie können 1.000-10.000 für eine sehr große Beschleunigung ausprobieren. Dies ist eine einfache und sehr unproblematische Möglichkeit, die Geschwindigkeit zu erhöhen. Ein Faktor von 10 und manchmal weit mehr ist oft möglich.

  • Sperren der Tabelle (LOCK TABLES ).

  • Indizes vorübergehend deaktivieren.

  • Abstimmen der MySQL-Optionen.

  • INSERT DELAYED (hier höchstwahrscheinlich nicht so nützlich).

Die Dokumentation gibt Ihnen ausführlichere Details auf die Optionen. Einige Optionen hängen vom Tabellentyp ab (InnoDB vs. MyISAM ).

Ein allgemeiner Vorschlag:Geben Sie immer die Spalten an, die Sie vor VALUES einfügen . Dies sorgt für besser wartbaren Code.