1 MySQL5.6 1.1 Verwandte Parameter MySQL 5.6 fügt drei Parameter hinzu: innodb_undo_directory, innodb_undo_logs und innodb_undo_tablespaces, die das Undo-Protokoll von ibdata1 verschieben und separat speichern können.
Standardparameter: mysql> Variablen wie „%undo%“ anzeigen; +-------------------------+----------+ | Variablenname | Wert | +-------------------------+----------+ | innodb_undo_verzeichnis | . | | innodb_undo_logs | 128 | | innodb_undo_tablespaces | 0 | +-------------------------+----------+
Die Initialisierung der Instanz besteht in der Änderung von innodb_undo_tablespaces: mysql_install_db ...... --innodb_undo_tablespaces $ ls ... undo001 undo002 undo003
1.2 Nutzung Bevor wir die Instanz initialisieren, müssen wir nur den Parameter innodb_undo_tablespaces festlegen (empfohlen größer oder gleich 3), um das Undo-Protokoll in einem separaten Undo-Tablespace einzurichten. Wenn Sie das Undo-Protokoll auf einem schnelleren Gerät speichern müssen, können Sie den Parameter innodb_undo_directory festlegen. Im Allgemeinen tun wir dies jedoch nicht, da SSDs mittlerweile sehr beliebt sind. innodb_undo_logs kann standardmäßig auf 128 gesetzt werden. Undo-Protokolle können außerhalb von ibdata gespeichert werden. Aber diese Funktion ist immer noch nutzlos:
1.3 Testen großer Transaktionen mysql> Tabelle test.tbl erstellen (ID int Primärschlüssel auto_increment, Name varchar (200)); Abfrage OK, 0 Zeilen betroffen (0,03 Sek.) mysql> Transaktion starten; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> in test.tbl(Name) Werte einfügen(Wiederholung('1',00)); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> in test.tbl(Name) einfügen, Namen aus test.tbl auswählen; Abfrage OK, 1 Zeile betroffen (0,00 Sek.) Datensätze: 1 Duplikate: 0 Warnungen: 0 ... mysql> in test.tbl(Name) einfügen, Namen aus test.tbl auswählen; Abfrage OK, 2097152 Zeilen betroffen (24,84 Sek.) Datensätze: 2097152 Duplikate: 0 Warnungen: 0 mysql> festschreiben; Abfrage OK, 0 Zeilen betroffen (7,90 Sek.) Beachten Sie, dass das Undolog begonnen hat, sich auszudehnen! Der Speicherplatz wird nach der Bestätigung der Transaktion nicht zurückgefordert. $ du -sh undo* 10M undo001 69M undo002 10M undo003 2 Mysql5.7 5.7 führt Online-Truncate-Undo-Tablespace ein 2.1 Verwandte Parameter Notwendige Voraussetzungen:
Startparameter:
2.2 Reinigungsprozess
2.3 Leistungsempfehlungen Die einfachste Möglichkeit, Leistungseinbußen beim Abschneiden eines Tablespaces zu vermeiden, besteht darin, die Anzahl der Undo-Tablespaces zu erhöhen. 2.4 Testen großer Transaktionen Konfigurieren Sie 8 Undo-Tablespaces, innodb_purge_rseg_truncate_frequency=10 mysqld --initialisieren … --innodb_undo_tablespaces=8 Testen beginnen mysql> globale Variablen wie „%undo%“ anzeigen; +--------------------------+------------+ | Variablenname | Wert | +--------------------------+------------+ | innodb_max_undo_log_size | 1073741824 | | innodb_undo_verzeichnis | ./ | | innodb_undo_log_truncate | EIN | | innodb_undo_logs | 128 | | innodb_undo_tablespaces | 8 | +--------------------------+------------+ mysql> wähle @@innodb_purge_rseg_truncate_frequency; +----------------------------------------+ | @@innodb_purge_rseg_truncate_frequency | +----------------------------------------+ | 10 | +----------------------------------------+ wählen Sie @@innodb_max_undo_log_size; +----------------------------+ | @@innodb_max_undo_log_size | +----------------------------+ |10485760| +----------------------------+ mysql> Tabelle test.tbl erstellen (ID int Primärschlüssel auto_increment, Name varchar (200)); Abfrage OK, 0 Zeilen betroffen (0,03 Sek.) mysql> Transaktion starten; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> in test.tbl(Name) Werte einfügen(Wiederholung('1',00)); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> in test.tbl(Name) einfügen, Name aus test.tbl auswählen; Abfrage OK, 1 Zeile betroffen (0,00 Sek.) Datensätze: 1 Duplikate: 0 Warnungen: 0 ... mysql> in test.tbl(Name) einfügen, Namen aus test.tbl auswählen; Abfrage OK, 2097152 Zeilen betroffen (24,84 Sek.) Datensätze: 2097152 Duplikate: 0 Warnungen: 0 mysql> festschreiben; Abfrage OK, 0 Zeilen betroffen (7,90 Sek.) Der Undo-Tablespace wird nach der Erweiterung auf über 100 MB erfolgreich wiederhergestellt.
3 Referenz https://dev.mysql.com/doc/ref... 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:
|
>>: Zusammenfassung zum Hinzufügen von Root-Berechtigungen für Benutzer in Linux
Die erste Zeile eines Docker-Images beginnt mit e...
Ich habe die Mysql FIND_IN_SET-Funktion vor einig...
Die Verwendung von Vue + ElementUI Tree dient zu ...
Wirkung Die Wirkung ist wie folgt Umsetzungside...
Erste Schritte mit Datenvolumes Wenn wir im vorhe...
MySQL verfügt über nicht standardmäßige Datentype...
Inhaltsverzeichnis 1. Gebrauchsanweisung 2. Vorbe...
Installation und Konfiguration von MySQL8.0.22 (s...
Als ich heute Abend nach dem Abendessen meinen La...
Heutzutage erfreuen sich mobile Geräte immer größ...
Inhaltsverzeichnis Einführung in den Samba-Server...
Dynamische REM 1. Lassen Sie uns zunächst die akt...
Inhaltsverzeichnis 1. Inline-Stile 2. Importmetho...
Wie oben gezeigt, sind Füllwerte zusammengesetzte...
In diesem Artikel wird das Shell-Skript von mysql...