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

CSS3-Beispielcode zum Erreichen einer Elementbogenbewegung

So verwenden Sie CSS, um die Bogenbewegung von El...

Tutorial zum Zurücksetzen des Root-Passworts von Mac MySQL

Haftungsausschluss: Mit dieser Methode zum Zurück...

So bereinigen Sie regelmäßig private Docker-Server-Images

Die Verwendung von CI zum Erstellen von Docker-Im...

JS Cross-Domain-Lösung React-Konfiguration Reverse-Proxy

Domänenübergreifende Lösungen jsonp (get simulier...

Fünf Richtlinien zum Schreiben von wartungsfreundlichem CSS-Code

1. Fügen Sie am Anfang des Stylesheets einen Komme...

Müssen die Texte der Website noch gestaltet werden?

Viele fragen sich vielleicht: Muss der Text auf d...

js genaue Berechnung

var numA = 0,1; var numB = 0,2; Alarm (Zahl A + Z...

Verwendung der Linux Dynamic Link Library

Im Vergleich zu gewöhnlichen Programmen haben dyn...

Implementierung der K8S-Bereitstellung eines Docker-Containers

Umgebung: (Docker, K8s-Cluster), fahren Sie mit d...

Lokale Vue-Komponentendatenfreigabe Vue.observable()-Nutzung

Wenn Komponenten detaillierter werden, treten Sit...

So installieren Sie allgemeine Komponenten (MySQL, Redis) in Docker

Docker installiert MySQL Docker-Suche MySQL. Such...

Vue3.x verwendet mitt.js für die Komponentenkommunikation

Inhaltsverzeichnis Schnellstart Anwendung Grundpr...