Detaillierte Erläuterung der globalen Parameterpersistenz in den neuen Funktionen von MySQL 8

Detaillierte Erläuterung der globalen Parameterpersistenz in den neuen Funktionen von MySQL 8

Vorwort

Seit der Veröffentlichung der ersten offiziellen Version von MySQL 8.0.11 im Jahr 2018 wurde die MySQL-Version auf 8.0.26 aktualisiert. Im Vergleich zur stabilen Version 5.7 ist die Leistungsverbesserung von 8.0 unbestreitbar!

Da immer mehr Unternehmen MySQL Version 8.0 verwenden, ist dies für Datenbankadministratoren eine Herausforderung und eine Chance zugleich. 💪🏻

In diesem Artikel werden hauptsächlich die neuen Funktionen von MySQL 8.0 erläutert: globale Parameterpersistenz

Persistenz globaler Parameter

MySQL 8.0 unterstützt die Online-Änderung globaler Parameter und Persistenz. Durch Hinzufügen des Schlüsselworts PERSIST können die geänderten Parameter in einer neuen Konfigurationsdatei (mysqld-auto.cnf) persistent gespeichert werden. Wenn Sie MySQL neu starten, können Sie die neuesten Konfigurationsparameter aus der Konfigurationsdatei abrufen!

Entsprechendes Arbeitsprotokoll [WL#8688]: dev.mysql.com/worklog/tas…

Um diese Funktion zu aktivieren, verwenden Sie die spezielle Syntax SET PERSIST, um alle dynamisch änderbaren globalen Variablen festzulegen!

SETZEN SIE PERSISTENZ

Die Anweisung kann den Wert der Variablen im Speicher ändern und den geänderten Wert in mysqld-auto.cnf im Datenverzeichnis schreiben.

SETZEN SIE PERSIST_ONLY

Die Anweisung ändert den Wert der Variablen im Speicher nicht, sondern schreibt den geänderten Wert lediglich in mysqld-auto.cnf im Datenverzeichnis.

Nehmen Sie den Parameter max_connections als Beispiel:

mysql> wähle * aus performance_schema.persisted_variables;
Leerer Satz (0,00 Sek.)

mysql> Variablen wie „%max_connections%“ anzeigen;
+------------------------+----------+
| Variablenname | Wert |
+------------------------+----------+
| max_Verbindungen | 151 |
|mysqlx_max_connections | 100 |
+------------------------+----------+
2 Zeilen im Satz (0,00 Sek.)

mysql> setze persistent max_connections=300;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mysql> wähle * aus performance_schema.persisted_variables;
+-----------------+----------------+
| VARIABLENNAME | VARIABLENWERT |
+-----------------+----------------+
| max_Verbindungen | 300 |
+-----------------+----------------+
1 Zeile im Satz (0,00 Sek.)

Das System generiert eine mysqld-auto.cnf-Datei im JSON-Format im Datenverzeichnis. Das Format ist wie folgt. Wenn my.cnf und mysqld-auto.cnf gleichzeitig vorhanden sind, hat letztere eine höhere Priorität.

{
    "Version": 1, 
    "mysql_server": {
        "max_connections": {
            "Wert": "300", 
            "Metadaten": {
                "Zeitstempel": 1632575065787609, 
                "Benutzer": "root", 
                "Host": "localhost"
            }
        }
    }
}

📢 Hinweis: Auch wenn Sie den Konfigurations-Wert über SET PERSIST ändern und es keine Änderung gibt, wird er in die Datei mysqld-auto.cnf geschrieben. Sie können den ursprünglichen Standardwert jedoch wiederherstellen, indem Sie ihn auf den STANDARD-Wert setzen!

Wenn Sie den Parameter max_connections auf seinen ursprünglichen Standardwert zurücksetzen möchten, führen Sie einfach Folgendes aus:

mysql> persistente max_connections=DEFAULT festlegen;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mysql> wähle * aus performance_schema.persisted_variables;
+-----------------+----------------+
| VARIABLENNAME | VARIABLENWERT |
+-----------------+----------------+
| max_Verbindungen | 151 |
+-----------------+----------------+
1 Zeile im Satz (0,00 Sek.)

Wenn Sie alle globalen persistenten Parameter entfernen möchten, führen Sie einfach Folgendes aus:

mysql> ZURÜCKSETZEN PERSIST;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mysql> wähle * aus performance_schema.persisted_variables;
Leerer Satz (0,00 Sek.)

Natürlich können Sie auch die Datei mysqld-auto.cnf löschen und MySQL neu starten!

Abschließende Gedanken

Hauptcode:

Verpflichten Sie f2bc0f89b7f94cc8fe963d08157413a01d14d994

Haupteingabefunktion (8.0.0):

Die meisten Schnittstellenfunktionen sind in der Datei sql/persisted_variable.cc definiert:
Lädt den Inhalt von mysqld-auto.cnf beim Start: Persisted_variables_cache::load_persist_file(); Analysiert die Gültigkeit von JSON und speichert es im Speicher, um die aus der Datei gelesene Konfiguration festzulegen: Persisted_variables_cache::set_persist_options

Wenn der Befehl SET PERSIST ausgeführt wird, wird Persisted_variables_cache::set_variable aufgerufen, um den im Speicher gespeicherten Wert zu aktualisieren und in die Datei mysqld-auto.cnf zu schreiben: Persisted_variables_cache::flush_to_file

Zusammenfassen

Dies ist das Ende dieses Artikels über die neue Funktion von MySQL 8: globale Parameterpersistenz. Weitere Informationen zur globalen Parameterpersistenz von MySQL 8 finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Referenzdokumente:

  • mysqlserverteam.com/mysql-8-0-p…
  • dev.mysql.com/worklog/tas…
  • bugs.mysql.com/bug.php?id=…
Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der neuen relationalen Datenbankfunktionen in MySQL 8.0
  • Eine kurze Diskussion über die Fallstricke und Lösungen der neuen Features von MySQL 8.0 (Zusammenfassung)
  • Neue Funktionen von MySQL 8: So ändern Sie persistente globale Variablen
  • Neue Funktionen in MySQL 8: Details zu absteigenden Indizes
  • Die Rolle der neuen Feature-Window-Funktionen von MySQL 8

<<:  Avue-CRUD-Implementierungsbeispiel für einen komplexen dynamischen Header auf mehreren Ebenen

>>:  Leitfaden zum Schreiben von HTML-Code

Artikel empfehlen

Fallstricke bei der neueren Version des IDEA2021 Tomcat10-Servlets

Da die Version, die ich beim Lernen verwendet hab...

Detaillierte Analyse von MySQL-Ausführungsplänen

Vorwort Als wir im vorherigen Interviewprozess na...

XHTML-Einführungstutorial: Anwendung von Tabellen-Tags

<br />Tabelle ist ein umständliches Tag in X...

So erstellen Sie schnell eine LAMP-Umgebung auf der CentOS-Plattform

Dieser Artikel beschreibt anhand eines Beispiels,...

So erstellen Sie geplante Aufgaben mit dem Crond-Tool in Linux

Vorwort Crond ist ein Tool zur geplanten Ausführu...

MySQL Server IO 100 % Analyse- und Optimierungslösung

Vorwort Während des Stresstests besteht das unmit...

Detaillierte Erklärung des JavaScript-Fortschrittsmanagements

Inhaltsverzeichnis Vorwort Frage Prinzip prüfen V...

Versionsnummern in CSS- und JS-Links in HTML (Cache aktualisieren)

Hintergrund Suchen Sie in der Suchmaschine nach d...

So zeigen Sie Versionsinformationen in Linux an

So zeigen Sie Versionsinformationen unter Linux a...

Detaillierter Beispielcode einer MySQL-Batch-Einfügeschleife

Hintergrund Als ich vor einigen Tagen Paging in M...

Super einfache QPS-Statistikmethode (empfohlen)

Statistik der QPS-Werte der letzten N Sekunden (i...

Installation und Verwendung der MySQL MyCat-Middleware

1. Was ist mycat Ein vollständig Open Source-Groß...