mysqldump: die Option opt

Die Option --opt wird standardmäßig ausgeführt und bietet eine Sammlung von mysqldump Optionen.

Die mysqldump option --opt ist eine Kürzel für folgende sinnvolle Optionen:

  1. mysqldump --create-options --disable-keys --extended-insert --lock-tables --add-drop-tables --quick --set-charset [...]

Die einzelnen Optionen haben folgende Bedeutung:

mysqldump Option --create-options

In die Anweisung zum Erstellen einer Tabellen werden alle Tabellenoptionen geschrieben.

mysqldump Option --disable-keys

Nur bei MyIsam Tebellen wirksam. Die Keys werden erst nach vollständigen Zurückschreiben erstellt. Das Zurückschreiben wird dadurch beschleunigt.

Option --extended-insert

Innerhalb einer INSERT-Anweisung werden mehrere Datensätze geschrieben, z.B.:

  1. INSERT INTO `help_category` VALUES (1,'Geographic',0,''),(2,'Polygon properties',33,''), [...]

an Stelle von

  1. INSERT INTO `help_category` VALUES (1,'Geographic',0,'');
  2. INSERT INTO `help_category` VALUES (2,'Polygon properties',33,'');
  3. [...]

Option --add-drop-tables

Vor dem Befehl zum Anlegen einer Tabelle wird versucht eine Drop-Anweisung auszuführen. Wenn man den Dump zurück spielt werden also alle Tabellen vorher auf jeden Fall gelöscht:

  1. DROP TABLE IF EXISTS `columns_priv`;
  2. CREATE TABLE `columns_priv` (
  3. [...]

Option --add-locks

Vorm Zurückschreiben wird für jede Tabelle ein lock gesetzt und anschließend wieder aufgehoben, z.B.:

  1. LOCK TABLES `columns_priv` WRITE;
  2. [...]
  3. UNLOCK TABLES;

Während des Zurückspielens ist die Tabelle für alle Zugriffe gesperrt, aber Einfügevorgänge werden beschleunigt.

Option --quick

Jeder Datensatz einer Tabelle wird einzeln vom Server abgerufen. Ansonsten würde mysql versuchen, die gesamten Daten der Tabelle in den Speicher zu schreiben. Bei großen Tabellen kann das zu einer Fehlermeldung und Abbruch führen.

Option --set-charset

Fügt zum Beispiel folgende Zeile in das Dump-File ein:

  1. /*!40101 SET NAMES utf8 */;

Natürlich kann es andere Standard-Zeichensätze geben.

mysqldump ohne Option --opt

Wer diese Option komplett überspringen will, gibt die Option --skip-opt an:

  1. mysqldump -u root -p --skip-opt --all-databases --result-file=dbdata.sql

Es lassen sich aber auch nur einzelne Optionen mit --skip deaktivieren. Die Option --skip-opt hat fast die gleiche Bedeutung wie (Gilt nicht für die Option --skip-add-drop-tables):

  1. mysqldump --skip-create-options --skip-disable-keys --skip-extended-insert --skip-lock-tables --skip-quick --skip-set-charset [...]

Kommentare

Danke, war hilfreich.