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

Wie kann mysql Millionen Datensätze schneller einfügen?

Dies liegt höchstwahrscheinlich daran, dass Sie Datensätze wie folgt einfügen:

INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2");
INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2");
INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2");
INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2");
INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2");

Jedes Mal, wenn Sie INSERT müssen, wird eine neue Abfrage gesendet etwas ist schlecht für die Leistung. Kombinieren Sie diese Abfragen stattdessen wie folgt zu einer einzigen Abfrage.

INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2"),
                                                 ("data1", "data2"),
                                                 ("data1", "data2"),
                                                 ("data1", "data2"),
                                                 ("data1", "data2");

Weitere Informationen zur Einfügegeschwindigkeit finden Sie auch in den MySQL-Dokumentation . Es beschreibt eindeutig Folgendes.

Kombinieren Sie natürlich nicht ALLE, wenn die Menge RIESIG ist. Angenommen, Sie müssen 1000 Zeilen einfügen, dann tun Sie es nicht einzeln. Aber Sie sollten wahrscheinlich nicht gleichermaßen versuchen, alle 1000 Zeilen in einer einzigen Abfrage zu haben. Brechen Sie es stattdessen in kleinere Größen auf.

Wenn es immer noch sehr langsam ist, kann es daran liegen, dass Ihr Server langsam ist.

Beachten Sie, dass Sie in der kombinierten Abfrage natürlich nicht alle diese Leerzeichen benötigen, um einen besseren Überblick über die Antwort zu erhalten.