Freigabe der schnellen Wiederherstellungslösung für große MySQL-SQL-Dateien

Freigabe der schnellen Wiederherstellungslösung für große MySQL-SQL-Dateien

Vorwort

Bei der Verwendung einer MySQL-Datenbank ist es häufig erforderlich, die Datenbank zu sichern und wiederherzustellen. Die einfachste und bequemste Methode besteht darin, die Sicherung und Wiederherstellung durch Exportieren und Importieren von SQL-Datendateien durchzuführen. Mit zunehmendem Umfang des Projekts wird die Datenmenge jedoch immer größer, und jede Wiederherstellung wird zu einem Problem.

Als ich kürzlich eine 5 GB große Datenbank aus einem Projekt heruntergeladen und lokal wiederhergestellt habe, dauerte dies 40 bis 50 Minuten. Angesichts der zukünftigen Datenerweiterung wird die Datenmenge zunehmen und die Wiederherstellungskosten steigen. Daher habe ich einige Informationen nachgeschlagen und festgestellt, dass Sie Ihre Wiederherstellungseffizienz durch die folgenden Einstellungen verbessern können.

1. Backup-Parameter ändern

Zunächst müssen wir unsere Wiederherstellungseffizienz verbessern, indem wir die Parameter beim Sichern der Datenbank ändern.

mysqldump --extended-insert

Der Parameter --extended-insert von mysqldump gibt das Batch-Einfügen an, wodurch mehrere Einfügeanweisungen zu einer Anweisung zusammengeführt werden. Die Effizienz des Sicherungsimports ist drei- bis viermal höher als bei nicht aktiviertem --extended-insert.

Die mit --extended-insert=false exportierten SQL-Dateidaten sehen so aus, mit einer Insert-Anweisung pro Zeile, und die Ausführungseffizienz ist sehr gering

Die mit --extended-insert=true exportierte Tabelle sieht wie in der folgenden Abbildung aus. Eine sehr lange Insert-Anweisung wird stapelweise eingefügt.

2. Passen Sie die MySQL-Schnelleinfügeparameter an

Wenn Ihre Datenbank-Speicher-Engine MYISAM ist, können Sie diesen Parameter auf 512 M oder 256 M setzen. MyISAM verwendet einen speziellen Baumcache, um schnellere Batch-Einfügungen durchzuführen.

Zugehörige Dokumentation: https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_bulk_insert_buffer_size

Der Standardwert ist 8M = 8388608byte

Überprüfen Sie die Größe des Einfügepuffers

VARIABLEN WIE „%bulk%“ ANZEIGEN;

Einfügepuffergröße festlegen (global)

GLOBAL festlegen bulk_insert_buffer_size =1024*1024*512;

Legen Sie die Einfügepuffergröße fest (Sitzung).

Setzen Sie bulk_insert_buffer_size =1024*1024*256;

Wenn Sie den Wert festlegen müssen, der beim Neustart von MySQL beibehalten werden soll, müssen Sie diese Konfiguration zu my.cnf hinzufügen

[mysqld]
bulk_insert_buffer_size = 256M

3. Schließen Sie den Prüfposten

Für die Innodb-Engine können wir einige Systemprüfungen deaktivieren, um eine schnellere Einfügelösung zu erreichen.

//Autocommit deaktivieren SET autocommit=0;

// Eindeutigkeitsprüfung deaktivieren set unique_checks = 0;

//Fremdschlüsselprüfungen deaktivieren SET foreign_key_checks=0;

// Aktivieren Sie den Parameter --extended-insert beim Sichern

Verwandte Dokumente zum Laden von Innodb-Massendaten: https://dev.mysql.com/doc/refman/5.7/en/optimizing-innodb-bulk-data-loading.html

4. Üben

Nach der oben genannten Optimierung wird sich Ihre MySQL-Wiederherstellungseffizienz sofort verbessern. Vor der oben genannten Parameteroptimierung dauerte die Wiederherstellung der Datenbank jedes Mal 40 Minuten. Nach der Einstellung dauert es nur etwa 16 Minuten. Die Dateikapazität meiner Datenbank beträgt etwa 5 GB.

Das ist fürs Erste alles. Wenn Sie bessere Lösungen und Vorschläge für den Tiguan haben, können Sie diese gerne mit mir besprechen. Viel Spaß beim Programmieren.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Implementierung der MySQL5.7 mysqldump-Sicherung und -Wiederherstellung
  • Zwei Methoden zum Wiederherstellen von MySQL-Daten
  • Schritte zum Wiederherstellen einer einzelnen MySQL-Tabelle
  • Implementierungscode für die Sicherung und Wiederherstellung von MySQL-Datenbanken
  • MySQL verwendet mysqldump + binlog, um die Prinzipanalyse der gelöschten Datenbank vollständig wiederherzustellen
  • Analyse der Implementierungsmethoden für MySQL-Datensicherung und -Wiederherstellung
  • So stellen Sie gelöschte MySQL 8.0.17-Root-Konten und Passwörter unter Windows wieder her
  • Shell-Skript zum Implementieren geplanter MySQL-Sicherungs-, Lösch- und Wiederherstellungsfunktionen
  • MySQL Binlog-Datenwiederherstellung: Detaillierte Erklärung zum versehentlichen Löschen einer Datenbank
  • So stellen Sie eine Datenbank und eine Tabelle aus einer vollständigen MySQL-Datenbanksicherung wieder her
  • MySQL-Schnellwiederherstellungslösung basierend auf dem Zeitpunkt

<<:  Beispiele für die Verwendung von Docker und Docker-Compose

>>:  Eine kurze Diskussion über das Prinzip des bidirektionalen Ereignisbindungs-V-Modells von Vue

Artikel empfehlen

Tutorial zur Installation von MySQL 8.0.11 unter Linux

1. Gehen Sie zur offiziellen Website, um das Inst...

Eine kurze Analyse der Unterschiede zwischen px, rem, em, vh und vw in CSS

Absolute Länge px px ist der Pixelwert, also eine...

Detaillierte Erklärung des Kopierobjekts von jQuery

<!DOCTYPE html> <html lang="de"...

Einführung in die Cloud-native-Technologie Kubernetes (K8S)

Inhaltsverzeichnis 01 Was ist Kubernetes? 02 Der ...

So implementieren Sie einen einfachen HTML-Videoplayer

Dieser Artikel stellt die Methode zur Implementie...

CSS3-Bézierkurven-Beispiel: Erstellen von Link-Hover-Animationseffekten

Wir verwenden animierte CSS3-Übergänge, um einen ...

Beispiel für die Installation von Kong Gateway in Docker

1. Erstellen Sie ein Docker-Netzwerk Docker-Netzw...

【HTML-Element】Detaillierte Erklärung des Tag-Textes

1. Verwenden Sie grundlegende Textelemente, um In...

So überprüfen Sie die Festplattennutzung unter Linux

1. Verwenden Sie den Befehl df, um die gesamte Fe...

Vue implementiert das digitale Tausendertrennzeichenformat global

In diesem Artikelbeispiel wird der spezifische Co...

CSS zum Erzielen eines schnellen und coolen Schüttelanimationseffekts

1. Einführung in Animate.css Animate.css ist eine...