Heim  >  Artikel  >  Datenbank  >  Detaillierte Erklärung des Vergleichs zwischen mydumper und mysqldump in MySQL

Detaillierte Erklärung des Vergleichs zwischen mydumper und mysqldump in MySQL

黄舟
黄舟Original
2017-05-28 09:51:131620Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn