MySQLDas Datenbank-Backup-Tool verfügt über einen eigenen MySQL-Dump, der ein offizielles Backup-Tool von MySQL ist. Allerdings wird das Drittanbieter-Backup-Tool mydumper aufgrund seiner überlegenen Funktionen von mehr Menschen verwendet. Als nächstes werden wir die Backup-Effizienz zwischen ihnen durch Tests überprüfen.
Wenn Sie nur ein paar Tabellen oder eine einzelne Bibliothek sichern, sind mysqldump und mydumper praktischer als innobackup, aber mydumper fügt relativ mehr Funktionen hinzu, wie z. B. Multi-Thread-Backup, regelmäßige Matching-Backups, Gruppe und Selbsttestfunktionen sind im Wesentlichen die gleichen Export-Logikdaten und unterstützen kein Online-Hot-Backup innodb. Natürlich können wir innobackup auch zum Sichern einiger Tabellendaten verwenden, aber das ist der Fall nicht dasselbe wie die Sicherungsmethode „mydumper“ und „mysqldump“, daher wird im Folgenden nur die Verwendung zwischen mydumper und mysqldump getestet.
mydumper-Export
Verwenden Sie zum Exportieren das Tool „mydumper“. test(9.4G) mit 8 Threads Die Daten werden wie folgt komprimiert:mydumper -B test --regex 'test.*' -c -e -G -E -R --use-savepoints -h 10.0.21.5 -u root -P 3301 -p xxxxxx -t 8 -o /data/mysql_bak/
Im Verzeichnis /data/mysql_bak wird jede Tabelle in der Bibliothek als zwei Dateien gespeichert: Tabellendefinition und Daten .
Die Gesamtausführungszeit ist wie folgt, sie dauert insgesamt 123 Sekunden
# cat metadata Started dump at: 2017-05-19 10:48:00 SHOW MASTER STATUS: Log: mysql-bin.000406 Pos: 2165426 GTID:(null) SHOW SLAVE STATUS: Host: 10.144.127.4 Log: mysql-bin.000419 Pos: 506000361 GTID:(null) Finished dump at: 2017-05-19 10:50:03
MySQLDump-Export
Verwenden Sie das Standard-MySQLDump-Tool, um Exportieren Sie die Bibliothek und komprimieren Sie sie wie unten gezeigt:
# time mysqldump -B test -E -R -h 10.0.21.5 -u root -P 3301 -p | gzip >/data/test.sql.gz Enter password: real 3m19.805s user 4m47.334s sys 0m10.395s
real Eine Zeile zeigt, dass die gesamte Laufzeit von mysqldump 199,8 Sekunden beträgt
Zusammenfassung
Insgesamt ist der Zeitunterschied zwischen mysqldump und mydumper nicht groß und die meiste Zeit wird auf der Datenübertragungsebene verbraucht. Wenn die Bibliothek groß genug ist, können die Vorteile von mydumper berücksichtigt werden , die niedrigere Version von mydumper wird aufgrund der Syntaxänderungen der höheren Version von MySQL das Problem von Exportfehlern haben. Beispielsweise tritt der folgende Fehler auf:
** (mydumper:18758): CRITICAL **: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' at line 1 (1064)
Um dieses Problem zu beheben, können Sie Verwenden Sie eine höhere Version von mydumper. Wenn dieses Problem bei der höheren Version weiterhin auftritt, können Sie auf github offiziellen Code verweisen. Nehmen Sie entsprechende Codeänderungen vor.
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung des Vergleichs zwischen mydumper und mysqldump in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!