Inhaltsverzeichnis
Binärprotokoll-Schreibprozess
sync_binlog
Es ist sicherer, den Wert auf 1 zu setzen, um die maximal mögliche Haltbarkeit und Konsistenz zu erreichen und die anschließende Master-Slave-Replikation und -Wiederherstellung sicherzustellen. Dies wirkt sich jedoch nachteilig auf die Leistung aus und kann eingestellt werden, wenn die vom Unternehmen benötigten IOPS nicht hoch sind.
Zusammenfassung
max_binlog_cache_size
Heim Datenbank MySQL-Tutorial Beherrschen Sie den Prozess des Schreibens von Binärprotokollen in MySQL vollständig

Beherrschen Sie den Prozess des Schreibens von Binärprotokollen in MySQL vollständig

Feb 18, 2022 pm 05:06 PM
mysql

Dieser Artikel vermittelt Ihnen relevantes Wissen über den Prozess des Schreibens von Binärprotokollen in MySQL, einschließlich Fragen im Zusammenhang mit „sync_binlog“, „binlog_cache_size“ und „max_binlog_cache_size“. Ich hoffe, dass er für alle hilfreich ist.

Beherrschen Sie den Prozess des Schreibens von Binärprotokollen in MySQL vollständig

Binärprotokoll-Schreibprozess

Werfen wir zunächst einen Blick auf die Beschreibung der sync_binlog-Konfiguration im offiziellen Dokument.

sync_binlog



Befehlszeilenformat --sync-binlog=#
Systemvariablen . sync _binlog
Einflussbereich Global
Dynamisch Ja
SET_VAR-Eingabeaufforderung gilt Nein
Typ Ganzzahl
Standard. 1
Minimaler Wert 0
Maximaler Wert 2^32=4294967295

Steuern Sie, wie oft der MySQL-Server Binärprotokolle mit der Festplatte synchronisiert.

  • sync_binlog=0: MySQL-Server daran hindern, Binärprotokolle mit der Festplatte zu synchronisieren. Stattdessen verlässt sich der MySQL-Server darauf, dass das Betriebssystem das Binärprotokoll von Zeit zu Zeit auf die Festplatte schreibt, so wie es auch jede andere Datei tun würde. Diese Einstellung bietet die beste Leistung, aber im Falle eines Stromausfalls oder eines Betriebssystemabsturzes verfügt der Server möglicherweise über festgeschriebene Transaktionen, die noch nicht geleert wurden.

  • sync_binlog=1: Aktivieren Sie die Synchronisierung des Binärprotokolls mit der Festplatte, bevor Sie eine Transaktion festschreiben. Dies ist die sicherste Einstellung, kann sich jedoch aufgrund erhöhter Schreibvorgänge auf die Festplatte negativ auf die Leistung auswirken. Bei einem Stromausfall oder Betriebssystemabsturz liegen die im Binärlog verlorenen Transaktionen nur im vorbereiteten Zustand vor. Dies ermöglicht eine regelmäßige automatische Wiederherstellung zum Zurücksetzen von Transaktionen und stellt so sicher, dass Transaktionen nicht aus dem Binärprotokoll verloren gehen.

  • sync_binlog=N, was ein anderer Wert als 0 oder 1 ist: Nachdem N Binärprotokoll-Übermittlungsgruppen gesammelt wurden, wird das Binärprotokoll mit der Festplatte synchronisiert. Im Falle eines Stromausfalls oder eines Betriebssystemabsturzes kann es sein, dass der Server Transaktionen festgeschrieben hat, die noch nicht in das Binärprotokoll geschrieben wurden. Diese Einstellung kann sich aufgrund erhöhter Festplattenschreibvorgänge negativ auf die Leistung auswirken. Höhere Werte verbessern die Leistung, erhöhen jedoch das Risiko eines Datenverlusts.

InnoDBUm die größtmögliche Haltbarkeit und Konsistenz in einem mit Transaktionen verwendeten Replikationssetup zu erreichen, verwenden Sie die folgenden Einstellungen: InnoDB为了在与事务一起使用 的复制设置中获得最大可能的持久性和一致性,请使用以下设置:

  • sync_binlog=1.
  • innodb_flush_log_at_trx_commit=1.

警告

许多操作系统和一些磁盘硬件欺骗了刷新到磁盘操作。他们可能会告诉 mysqld已经发生了刷新,即使它还没有发生。在这种情况下,即使使用推荐的设置也无法保证事务的持久性,在最坏的情况下,断电可能会损坏InnoDB

sync_binlog=1.

innodb_flush_log_at_trx_commit=1.
  • WARNUNG
  • Viele Betriebssysteme und einige Festplattenhardware betrügen den Flush-to-Disk-Vorgang. Sie teilen mysqld möglicherweise mit, dass eine Aktualisierung stattgefunden hat, obwohl dies noch nicht geschehen ist. In diesem Fall ist die Haltbarkeit der Transaktion selbst mit den empfohlenen Einstellungen nicht gewährleistet und im schlimmsten Fall kann ein Stromausfall die InnoDB-Daten beschädigen. Durch die Verwendung eines batteriegepufferten Festplattencaches im SCSI-Festplattencontroller oder auf der Festplatte selbst werden Dateiaktualisierungen beschleunigt und der Betrieb sicherer. Sie können auch versuchen, das Caching von Festplattenschreibvorgängen im Hardware-Cache zu deaktivieren.
  • Zusammenfassung

sync_binlog-Einstellungstyp ist eine vorzeichenlose Ganzzahl.

Im Allgemeinen ist es nicht auf 0 gesetzt. 0 hängt vom Systembetrieb und unregelmäßigem fsync ab. Gefährlicher ist es, wenn ein Stromausfall oder ein Systemabsturz auftritt – die Transaktion wird übermittelt, aber das Binärprotokoll fehlt.

Es ist sicherer, den Wert auf 1 zu setzen, um die maximal mögliche Haltbarkeit und Konsistenz zu erreichen und die anschließende Master-Slave-Replikation und -Wiederherstellung sicherzustellen. Dies wirkt sich jedoch nachteilig auf die Leistung aus und kann eingestellt werden, wenn die vom Unternehmen benötigten IOPS nicht hoch sind.

Der Zweck des Festlegens eines Werts größer als 1 besteht darin, die Leistung zu verbessern. Dies ist nicht nur eine intelligente Methode zum Festschreiben einer Transaktion, sondern auch bei einem Stromausfall oder einem Systemabsturz. das Binärprotokoll wird mehr fehlen. Es wäre sicherer, wenn die Festplatte selbst einen batteriegepufferten Festplatten-Cache verwenden würde. Daher kann es eingestellt werden, wenn die vom Unternehmen benötigten IOPS relativ hoch sind, aber im Allgemeinen wird es nicht zu groß eingestellt und kann im Bereich [100, 1000] liegen. Sehen wir uns weiterhin die Cache-bezogene Konfiguration des Binärprotokolls an, wenn die Transaktion ausgeführt wird. Befehlsformat--binlog-cache-size=#Systemvariable. binlog_cache_sizerangeGolbalDynamischJaSET_VAR-Eingabeaufforderung giltNeinTypGanzzahlStandardwert32768Minimaler Wert4096Maximaler Wert ( 64 -Bit-Plattform)2^64=18446744073709547520max (32-Bit-Plattform)2^32=4294967295
Darüber hinaus können wir durch die Beschreibung von sync_binlog = 0 auch ungefähr das Gefühl haben, dass die Transaktion beim Senden zwar nicht sofort fsync ist, aber tatsächlich in den Seitencache des Dateisystems geschrieben wurde. MySQL befindet sich in der Transaktion. Beim Ausführen gibt es auch einen Cache, der das in der Transaktion generierte Binärprotokoll zwischenspeichert.

binlog_cache_size
🎜🎜🎜Blockgröße🎜🎜4096🎜 🎜🎜🎜

Die Größe des Speicherpuffers zur Speicherung binärer Protokolländerungen während einer Transaktion. Der Wert muss ein Vielfaches von 4096 sein.

Wenn die binäre Protokollierung auf einem Server aktiviert ist (die Systemvariable log_bin ist auf ON gesetzt), wird jedem Client ein binärer Protokollcache zugewiesen, wenn der Server eine Transaktionsspeicher-Engine unterstützt. Wenn die Daten einer Transaktion den Platz im Speicherpuffer überschreiten, werden die überschüssigen Daten in einer temporären Datei gespeichert. Wenn die binäre Protokollverschlüsselung auf dem Server aktiv ist, wird der Speicherpuffer nicht verschlüsselt, aber (ab MySQL 8.0.17) werden alle temporären Dateien, die zum Speichern des binären Protokollcaches verwendet werden, verschlüsselt. Nachdem jede Transaktion festgeschrieben wurde, wird der Binärprotokoll-Cache zurückgesetzt, indem der Speicherpuffer gelöscht und die temporäre Datei (falls verwendet) abgeschnitten wird.

Wenn Sie häufig große Transaktionen verwenden, können Sie diese Cachegröße für eine bessere Leistung erhöhen, indem Sie das Schreiben temporärer Dateien reduzieren oder ganz überflüssig machen. Binlog_cache_use (Dienststatusvariable – die Anzahl der Transaktionen, die den Binärprotokoll-Cache verwenden) und Binlog_cache_disk_use (Dienststatusvariable – die Anzahl der Transaktionen, die den temporären Binärprotokoll-Cache verwenden, aber den binlog_cache_size-Wert überschreiten und temporäre Dateien zum Speichern von Transaktionsanweisungen verwenden.) Statusvariablen kann verwendet werden, um diese variable Größe anzupassen. Siehe Abschnitt 5.4.4, „Binärprotokolle“.

binlog_cache_sizeLegt nur die Größe des Transaktionscache fest; die Größe des Anweisungscache wird durch die Systemvariable binlog_stmt_cache_size gesteuert.

Zusammenfassung

  • Der Einstellungstyp „binlog_cache_size“ ist eine vorzeichenlose Ganzzahl.
  • wird verwendet, um die Größe anzugeben, die während jeder Transaktion zum Zwischenspeichern des Binärprotokolls verwendet wird. Der Standardwert ist 32 KB und muss ein Vielfaches von 4096 sein. Wenn dieser Wert überschritten wird, wird ein temporärer Dateispeicher verwendet.
  • Versuchen Sie, im Geschäftsleben keine großen Transaktionen durchzuführen. Wenn die Transaktion zu groß ist, müssen Sie überlegen, ob sie angemessen ist. Im Allgemeinen besteht keine Notwendigkeit, binlog_cache_size zu ändern, 32 KB reichen aus.
  • Wenn binlog_cache_size nicht ausreicht, werden temporäre Dateien zur Speicherung verwendet, die Leistung ist jedoch geringer. Wir können max_binlog_cache_size=binlog_cache_size festlegen, sodass keine temporären Dateien verwendet werden, was weiter unten erläutert wird.

max_binlog_cache_size



Befehlsformat --max-binlog-cache-size=#
Systemvariablen max_binlog_cache_size
range Golbal
Dynamisch Ja
SET_VAR-Eingabeaufforderung gilt Nein
Typ Ganzzahl
Standardwert 2^64 =18 446744073709547520
Minimum 4096
maximal 2^64=18446744073709547520
Blockgröße 4096

Wenn eine Transaktion mehr als diese Anzahl an Bytes Speicher benötigt, generiert der Server eine Transaktion mit mehreren Anweisungen, die mehr als „max_binlog_cache_size“ Bytes an Speicherfehler erfordert. Der Mindestwert ist 4096. Der maximal mögliche Wert beträgt 16EiB (Exbibyte). Der empfohlene Höchstwert liegt bei 4 GB. Dies liegt daran, dass MySQL derzeit keine binären Protokollspeicherorte verarbeiten kann, die größer als 4 GB sind. Der Wert muss ein Vielfaches von 4096 sein.

max_binlog_cache_size legt nur die Größe des Transaktionscache fest; die Obergrenze des Anweisungscache wird durch die Systemvariable max_binlog_stmt_cache_size gesteuert. max_binlog_cache_size仅设置事务缓存的大小;语句缓存的上限由 max_binlog_stmt_cache_size 系统变量控制。

会话的可见性 max_binlog_cache_size

Die Sichtbarkeit der Sitzung max_binlog_cache_size entspricht der Sichtbarkeit der Systemvariablen binlog_cache_size. Mit anderen Worten: Eine Änderung ihres Werts wirkt sich nur auf neue Sitzungen aus, die nach der Änderung des Werts gestartet werden.

Zusammenfassung
  • max_binlog_cache_size ist ein sicherer Wert, der im Allgemeinen entsprechend dem Speicher festgelegt wird, der vom Server zugewiesen werden kann.

Übersicht

Aus der obigen Konfiguration können wir den allgemeinen Schreibprozess des Binärprotokolls zeichnen:
  1. Transaktionen werden in den Binärprotokoll-Cache jeder Transaktion geändert, wenn sie ausgeführt werden.
  2. Nachdem die Transaktion übermittelt wurde, wird sie gemäß der Konfiguration ausgeführt. Wenn sync_binlog=1 ist, wird der Cache jedes Mal freigegeben, wenn fsync ausgeführt wird. Wenn sync_binlog = 0, wird es direkt in den Seitencache der Systemdatei geschrieben, wobei das Betriebssystem das Binärprotokoll von Zeit zu Zeit leert. Wenn sync_binlog=N (N>1) ist, entspricht dies einer Stapellöschung. Natürlich wird der von jeder Transaktion gehaltene Binlog-Cache freigegeben.

Der allgemeine Prozess ist also wie folgt:

Zusammenfassung

Bisher haben wir ein grobes Verständnis des Prozesses des Schreibens von MySQL in Binär, der Folgendes durchlaufen muss: Binlog-Cache, der von jeder Transaktion gehalten wird -> Seitencache des Dateisystems -> Die spezifische Ausführungsstrategie kann über sync_binlog gesteuert werden.

Verwenden Sie
  • sync_binlog: Wenn Sie maximale Haltbarkeit und Konsistenz benötigen, setzen Sie es auf 1. Bei Leistungsproblemen können Sie die Hardware und andere Methoden anpassen; wenn das Binärprotokoll durch andere Methoden verloren gehen darf Methoden, die Sie basierend auf der aktuellen Situation steuern möchten, werden optimiert und im Intervall [100,1000] festgelegt.
  • binlog_cahe_size: Wie bereits erwähnt, muss im tatsächlichen Geschäft auf die Kontrolle der Transaktionsgranularität geachtet werden. In den meisten Fällen ist der Standardwert von 32 KB ausreichend.

Empfohlenes Lernen: MySQL-Video-Tutorial

🎜

Das obige ist der detaillierte Inhalt vonBeherrschen Sie den Prozess des Schreibens von Binärprotokollen in MySQL vollständig. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

MySQL: Einfache Konzepte für einfaches Lernen MySQL: Einfache Konzepte für einfaches Lernen Apr 10, 2025 am 09:29 AM

MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

Wie man phpmyadmin öffnet Wie man phpmyadmin öffnet Apr 10, 2025 pm 10:51 PM

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

MySQL: Eine Einführung in die beliebteste Datenbank der Welt MySQL: Eine Einführung in die beliebteste Datenbank der Welt Apr 12, 2025 am 12:18 AM

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

Warum MySQL verwenden? Vorteile und Vorteile Warum MySQL verwenden? Vorteile und Vorteile Apr 12, 2025 am 12:17 AM

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

So verwenden Sie ein einzelnes Gewinde -Redis So verwenden Sie ein einzelnes Gewinde -Redis Apr 10, 2025 pm 07:12 PM

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

MySQL und SQL: Wesentliche Fähigkeiten für Entwickler MySQL und SQL: Wesentliche Fähigkeiten für Entwickler Apr 10, 2025 am 09:30 AM

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

Mysqls Platz: Datenbanken und Programmierung Mysqls Platz: Datenbanken und Programmierung Apr 13, 2025 am 12:18 AM

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

So erstellen Sie eine SQL -Datenbank So erstellen Sie eine SQL -Datenbank Apr 09, 2025 pm 04:24 PM

Das Erstellen einer SQL -Datenbank umfasst 10 Schritte: Auswählen von DBMs; Installation von DBMs; Erstellen einer Datenbank; Erstellen einer Tabelle; Daten einfügen; Daten abrufen; Daten aktualisieren; Daten löschen; Benutzer verwalten; Sichern der Datenbank.

See all articles