mysql: „complete inserts“ und „extended inserts“

In Beispielen zu mysql Backups werden häufig die Optionen --complete-inserts und --extended-inserts benutzt, doch was bedeuten die eigentlich?

Complete inserts fügen dem mysql dump die Spaltennamen hinzu. Dieser Parameter verbessert die Lesbarkeit und Zuverlässigkeit des dumps. Das Hinzufügen der Spaltennamen erhöht die Grösse des Dumps, aber wenn es mit Extended Inserts kombiniert wird, ist es vernachlässigbar.

Extended Inserts kombiniert mehrere Datenzeilen in einer einzigen INSERT-Abfrage. Dies verringert signifikant die Dateigrösse für grosse SQL-Dumps, erhöht die INSERT-Geschwindigkeit beim Import und wird allgemein empfohlen.

Die folgenden Beispiele zeigen die Unterschiede beim Export einer Tabelle mit 3 Zeilen.

Beide Optionen weggelassen:

INSERT INTO `table` VALUES(1, 'Katze');
INSERT INTO `table` VALUES(2, 'Hund');
INSERT INTO `table` VALUES(3, 'Vogel');

Nur --complete-inserts:

INSERT INTO `table` (`id`, `name`) VALUES(1, 'Katze');
INSERT INTO `table` (`id`, `name`) VALUES(2, 'Hund');
INSERT INTO `table` (`id`, `name`) VALUES(3, 'Vogel');

Nur --extended-inserts:

INSERT INTO `table` VALUES
(1, 'Katze'),
(2, 'Hund'),
(3, 'Vogel');

--complete-inserts UND --extended-inserts:

INSERT INTO `table` (`id`, `name`) VALUES
(1, 'Katze'),
(2, 'Hund'),
(3, 'Vogel');

Wie man sehen kann, ergibt die Kombination von beiden Parametern die beste Balance zwischen SQL-Dump Grösse und Lesbarkeit.

Die beiden Parameter schliessen sich also nicht aus – Man kann eine, beide oder keine verwenden. Es gibt kein „Complete inserts vs. Extended Inserts“ Argument. Sie haben jeweils einfach eine andere Funktion.

Quellen

Published by

Steven Varco

Steven ist ein Redhat RHCE- und Kubernetes CKA Zertifizierter Linux-Crack und ist seit über 20 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

One thought on “mysql: „complete inserts“ und „extended inserts“”

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert