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

Anweisungen zur Verwendung des Datenbankverbindungspools Druid

Ersetzen Sie ihn durch den optimalen Datenbankver...

Importieren von CSS-Dateien unter Verwendung von Beurteilungsbedingungen

Lösung 1: Verwenden Sie bedingten Import im HTML-...

Detaillierte Analyse der untergeordneten und übergeordneten Vue-Komponenten

Inhaltsverzeichnis 1. Übergeordnete Komponenten u...

Implementierung einer einfachen Web-Uhr mit JavaScript

Verwenden Sie JavaScript, um eine Webseitenuhr zu...

Sechs mit CSS3 implementierte Randübergangseffekte

Sechs EffekteImplementierungscode html <h1>...

In einem Artikel erfahren Sie, wie Sie mit js den Sperrfeuereffekt erzielen

Inhaltsverzeichnis Erstellen Sie eine neue HTML-D...

Vier Modi zum Öffnen und Schließen von Oracle

>1 Starten Sie die Datenbank Geben Sie im cmd-...

Schiebemenü mit CSS3 implementiert

Ergebnis:Implementierungscode: <!DOCTYPE html&...

Einführung in den Installationsprozess von MySQL 8.0 in einer Linux-Umgebung

Inhaltsverzeichnis Vorwort 1. Linux ändert die Yu...