Einführungmysqlpump ist eine Ableitung von mysqldump. Es bezieht sich auch auf die Idee von mydumper und unterstützt den parallelen Datenexport. Daher ist die Effizienz des Datenexports viel höher als die von mysqldump. AnweisungenDie meisten Parameter von mysqlpump sind dieselben wie die von mysqldump, und die allgemeine Verwendung unterscheidet sich nicht wesentlich von mysqldump. Hier sind einige der wichtigeren und am häufigsten verwendeten Parameter in mysqlpump.
Tatsächliche ErfahrungHier führen wir einen einfachen Test von mysqlpump durch, wählen MySQL 5.7 als Zielinstanz aus und verwenden in den Parametern sowohl Einzeltransaktion als auch Standardparallelität, um die Auswirkungen dieses Konflikts zu sehen. Die Ausgabe auf der mysqlpump-Seite bezieht sich auf folgende Informationen: root@VM-64-10-debian:~# mysqlpump -h172.100.10.10 -uroot -p --single-transaction --default-parallelism=16 --set-gtid-purged=OFF -B sbtest > sbtest.sql Dump-Fortschritt: 0/1 Tabellen, 250/987400 Zeilen Dump-Fortschritt: 0/5 Tabellen, 117250/3946600 Zeilen Dump-Fortschritt: 1/5 Tabellen, 258750/3946600 Zeilen Dump-Fortschritt: 1/5 Tabellen, 385500/3946600 Zeilen Dump-Fortschritt: 1/5 Tabellen, 516750/3946600 Zeilen Dump-Fortschritt: 1/5 Tabellen, 639250/3946600 Zeilen Dump-Fortschritt: 1/5 Tabellen, 757000/3946600 Zeilen Dump-Fortschritt: 1/5 Tabellen, 885000/3946600 Zeilen Dump-Fortschritt: 1/5 Tabellen, 1005750/3946600 Zeilen Dump-Fortschritt: 1/5 Tabellen, 1114250/3946600 Zeilen Dump-Fortschritt: 1/5 Tabellen, 1223250/3946600 Zeilen Dump-Fortschritt: 2/5 Tabellen, 1312500/3946600 Zeilen Dump-Fortschritt: 2/5 Tabellen, 1430750/3946600 Zeilen Dump-Fortschritt: 2/5 Tabellen, 1553000/3946600 Zeilen Dump-Fortschritt: 2/5 Tabellen, 1680250/3946600 Zeilen Dump-Fortschritt: 2/5 Tabellen, 1809500/3946600 Zeilen Dump-Fortschritt: 2/5 Tabellen, 1940750/3946600 Zeilen Dump-Fortschritt: 2/5 Tabellen, 2060000/3946600 Zeilen Dump-Fortschritt: 2/5 Tabellen, 2175250/3946600 Zeilen Dump-Fortschritt: 2/5 Tabellen, 2295250/3946600 Zeilen Dump-Fortschritt: 3/5 Tabellen, 2413500/3946600 Zeilen Dump-Fortschritt: 3/5 Tabellen, 2554500/3946600 Zeilen Dump-Fortschritt: 3/5 Tabellen, 2693500/3946600 Zeilen Dump-Fortschritt: 3/5 Tabellen, 2818750/3946600 Zeilen Dump-Fortschritt: 3/5 Tabellen, 2941500/3946600 Zeilen Dump-Fortschritt: 4/5 Tabellen, 3056000/3946600 Zeilen Dump-Fortschritt: 4/5 Tabellen, 3172750/3946600 Zeilen Dump-Fortschritt: 4/5 Tabellen, 3280000/3946600 Zeilen Dump-Fortschritt: 4/5 Tabellen, 3372000/3946600 Zeilen Dump-Fortschritt: 4/5 Tabellen, 3444750/3946600 Zeilen Dump in 126555 Millisekunden abgeschlossen Sie können sehen, dass mysqlpump die Tabellen tatsächlich immer noch einzeln exportiert, wenn diese beiden Parameter gleichzeitig aktiviert sind. Die Priorität der Einzeltransaktion ist höher als die der Standardparallelität. Wenn Sie einzelne Transaktionen entfernen und erneut testen, werden Sie ein interessantes Phänomen feststellen. Wenn Sie die MySQL-Prozessliste beobachten, erhalten Sie die folgenden Ergebnisse: mysql> Prozessliste anzeigen; +---------+------+--------------------+------+---------+------+----------------------------------+----------------------------------------------------+ | ID | Benutzer | Host | db | Befehl | Zeit | Status | Info | +---------+------+--------------------+------+---------+------+----------------------------------+----------------------------------------------------+ | 2763496 | root | 172.100.10.10:49086 | NULL | Abfrage | 0 | wird gestartet | Prozessliste anzeigen | | 2763585 | root | 172.100.10.10:49192 | NULL | Schlaf | 126 | | NULL | | 2763586 | root | 172.100.10.10:49194 | NULL | Schlaf | 126 | | NULL | | 2763587 | root |172.100.10.10:49196 | NULL | Schlaf | 126 | | NULL | | 2763588 | root | 172.100.10.10:49198 | NULL | Schlaf | 126 | | NULL | | 2763589 | root | 172.100.10.10:49200 | NULL | Schlaf | 126 | | NULL | | 2763590 | root | 172.100.10.10:49202 | NULL | Schlaf | 126 | | NULL | | 2763591 | root | 172.100.10.10:49204 | NULL | Schlaf | 126 | | NULL | | 2763592 | root | 172.100.10.10:49206 | NULL | Schlaf | 126 | | NULL | | 2763593 | root | 172.100.10.10:49208 | NULL | Schlaf | 126 | | NULL | | 2763594 | root | 172.100.10.10:49210 | NULL | Schlaf | 126 | | NULL | | 2763595 | root | 172.100.10.10:49212 | NULL | Abfrage | 125 | An Client senden | SELECT `id`,`k`,`c`,`pad` FROM `sbtest`.`sbtest5` | | 2763596 | root | 172.100.10.10:49214 | NULL | Abfrage | 125 | An Client senden | SELECT `id`,`k`,`c`,`pad` FROM `sbtest`.`sbtest4` | | 2763597 | root | 172.100.10.10:49216 | NULL | Abfrage | 125 | An Client senden | SELECT `id`,`k`,`c`,`pad` FROM `sbtest`.`sbtest3` | | 2763598 | root | 172.100.10.10:49218 | NULL | Abfrage | 125 | An Client senden | SELECT `id`,`k`,`c`,`pad` FROM `sbtest`.`sbtest2` | | 2763599 | root | 172.100.10.10:49220 | NULL | Abfrage | 125 | An Client senden | SELECT `id`,`k`,`c`,`pad` FROM `sbtest`.`sbtest1` | | 2763600 | root | 172.100.10.10:49222 | NULL | Schlaf | 125 | | NULL | | 2763601 | root | 172.100.10.10:49224 | NULL | Schlaf | 125 | | NULL | +---------+------+--------------------+------+---------+------+----------------------------------+----------------------------------------------------+ 18 Zeilen im Satz (0,00 Sek.) MySQL> Es ist deutlich zu erkennen, dass der "parallele Export" von mysqlpump tatsächlich nur auf dem parallelen Export auf Tabellenebene basiert. Wenn es eine einzelne große Tabelle gibt, wird die Exportzeit ernsthaft beeinträchtigt und es tritt ein Shortboard-Effekt auf. Zusatzfrage: Wenn ein Konflikt zwischen Standardparallelität und Einzeltransaktion besteht, kann die Datenkonsistenz beim parallelen Export nicht bestätigt werden? Übung macht den Meister. Öffnen Sie general_log und sehen Sie sich den Exportvorgang an: 2021-05-12T11:54:09.033215Z 75 Verbinden Sie [email protected] mit SSL/TLS 2021-05-12T11:54:09.075347Z 75 Abfrage FLUSH TABLES WITH READ LOCK // Tabellen sperren beginnen 2021-05-12T11:54:09.103132Z 75 Abfrage SHOW WARNINGS 2021-05-12T11:54:09.106382Z 75 Abfrage SET SESSION TRANSACTION ISOLATION LEVEL WIEDERHOLBARES LESEN 2021-05-12T11:54:09.106553Z 75 Abfrage WARNUNGEN ANZEIGEN 2021-05-12T11:54:09.106640Z 75 Abfrage START TRANSACTION MIT KONSISTENTEM SNAPSHOT 2021-05-12T11:54:09.108115Z 75 Abfrage WARNUNGEN ANZEIGEN 2021-05-12T11:54:09.127277Z 76 Verbinden Sie [email protected] mit SSL/TLS 2021-05-12T11:54:09.127452Z 76 Abfrage SET SESSION TRANSACTION ISOLATION LEVEL WIEDERHOLBARES LESEN 2021-05-12T11:54:09.127590Z 76 Abfrage WARNUNGEN ANZEIGEN 2021-05-12T11:54:09.127680Z 76 Abfrage START TRANSACTION MIT KONSISTENTEM SNAPSHOT 2021-05-12T11:54:09.127790Z 76 Abfrage WARNUNGEN ANZEIGEN ...... 2021-05-12T11:54:10.018813Z 90 Verbinden Sie [email protected] mit SSL/TLS 2021-05-12T11:54:10.018944Z 90 Abfrage SET SESSION TRANSACTION ISOLATION LEVEL WIEDERHOLBARES LESEN 2021-05-12T11:54:10.019047Z 90 Abfrage WARNUNGEN ANZEIGEN 2021-05-12T11:54:10.019150Z 90 Abfrage START TRANSAKTION MIT KONSISTENTEM SNAPSHOT 2021-05-12T11:54:10.019226Z 90 Abfrage WARNUNGEN ANZEIGEN 2021-05-12T11:54:10.025833Z 91 Verbinden Sie [email protected] mit SSL/TLS 2021-05-12T11:54:10.025934Z 91 Abfrage SET SESSION TRANSACTION ISOLATION LEVEL WIEDERHOLBARES LESEN 2021-05-12T11:54:10.026048Z 91 Abfrage WARNUNGEN ANZEIGEN 2021-05-12T11:54:10.026141Z 91 Abfrage START TRANSAKTION MIT KONSISTENTEM SNAPSHOT 2021-05-12T11:54:10.026219Z 91 Abfrage WARNUNGEN ANZEIGEN 2021-05-12T11:54:10.026293Z 75 Abfrage UNLOCK TABLES //Sperre der Tabelle beenden 2021-05-12T11:54:10.026406Z 75 Abfrage SHOW WARNINGS Es ist ersichtlich, dass vor dem parallelen Export ein Thread eine globale Lesesperre hinzufügt und die Tabelle erst entsperrt, nachdem alle gleichzeitigen Threads die Transaktion geöffnet haben. Daher sind die Daten während des parallelen Exports konsistent. Für und Wider
Um zusammenzufassenObwohl mysqlpump noch viele Mängel aufweist, hat es im Vergleich zum ursprünglichen mysqldump große Fortschritte gemacht. Die Veröffentlichung dieses Tools zeigt auch, dass Oracle endlich begonnen hat, den ökologischen Tools von MySQL Aufmerksamkeit zu schenken. Wir freuen uns darauf, dass die offizielle Version mehr und bessere ökologische Tools bereitstellt. Oben finden Sie detaillierte Informationen zur Verwendung des offiziellen MySQL-Exporttools mysqlpump. Weitere Informationen zur Verwendung von mysqlpump finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Erkunden Sie die gängigen VMware ESXI CLI-Befehle
>>: So verwenden Sie Elemente in React-Projekten
Heute habe ich den Mauszoom-Effekt auf der Vorders...
Inhaltsverzeichnis Vue3 + TypeScript lernen 1. Um...
Inhaltsverzeichnis 1. Datenbankbeschränkungen 1.1...
Die Indizierung ähnelt dem Erstellen bibliografis...
Inhaltsverzeichnis 1 Die Rolle von Apache 2 Apach...
Vorwort Während des Stresstests besteht das unmit...
1. Globales Objekt Alle Module können aufgerufen ...
Verwenden Sie natives JS, um ein neuneckiges Rast...
1. Vorbereitung vor der Installation: 1.1 JDK ins...
Warum speziell Textbereich erwähnen? Denn der Text...
Inhaltsverzeichnis 1. Planaufgaben anpassen 2. Ze...
Inhaltsverzeichnis 1. Datentyp 1. Was sind MySQL-...
<br /> CSS-Syntax für Tabellenränder Zu den ...
Inhaltsverzeichnis 1. Einführung in import_table ...
Inhaltsverzeichnis 1. Einführung in den MySQL-Ind...