Innodb umfasst die folgenden Komponenten 1. innodb_buffer_pool: Es wird hauptsächlich zum Zwischenspeichern von Daten und Indizes verwendet (um genau zu sein, da die Tabelle in InnoDB durch einen gruppierten Index organisiert ist, sind die Daten nur der Blattknoten des Primärschlüsselindex). 2. Puffer wechseln: 1 Wenn die Aktualisierungsanweisung den Datensatz des Sekundärindex aktualisieren soll, sich die Seite, auf der sich der Datensatz befindet, jedoch nicht im innodb_buffer_pool befindet, aktualisiert innodb den Sekundärindex Die Aktualisierungsaktion der Seite wird in einem bestimmten Bereich (Änderungspuffer) von innodb_buffer_pool zwischengespeichert. Wenn eine andere Transaktion B diese sekundäre Indexseite später lesen möchte, Da sich die Seite noch nicht im innodb_buffer_pool befindet, lädt Transaktion B die Seite zuerst in den innodb_buffer_pool, sodass die Zielseite in den innodb_buffer_pool gelangt. Als nächstes können Sie die Indexseite entsprechend dem Inhalt des Änderungspuffers aktualisieren. Dadurch können E/A-Vorgänge eingespart und die Leistung verbessert werden. 2 Natürlich gibt es auch andere Aktualisierungsmechanismen (Änderungen im Änderungspuffer werden auf die Festplatte geschrieben). Wenn MySQL beispielsweise relativ inaktiv ist, wird es auch während des langsamen Herunterfahrens aktualisiert. Pufferinhalt auf Festplatte ändern 3 Überwachung des Änderungspuffers InnoDB-Status der Engine anzeigen; ------------------------------------- PUFFER EINFÜGEN UND ADAPTIVER HASH-INDEX ------------------------------------- Ibuf: Größe 1, freie Listenlänge 0, Segmentgröße 2, 0 Zusammenführungen Zusammengeführte Operationen: 0 einfügen, 0 löschen, 0 markieren, 0 löschen verworfene Operationen: 0 einfügen, 0 löschen, 0 markieren, 0 löschen Hash-Tabellengröße 34679, Knoten-Heap hat 0 Puffer Hash-Tabellengröße 34679, Knoten-Heap hat 0 Puffer Hash-Tabellengröße 34679, Knoten-Heap hat 0 Puffer Hash-Tabellengröße 34679, Knoten-Heap hat 0 Puffer Hash-Tabellengröße 34679, Knoten-Heap hat 0 Puffer Hash-Tabellengröße 34679, Knoten-Heap hat 0 Puffer Hash-Tabellengröße 34679, Knoten-Heap hat 0 Puffer Hash-Tabellengröße 34679, Knoten-Heap hat 0 Puffer 0,00 Hash-Suchen/s, 0,00 Nicht-Hash-Suchen/s --- PROTOKOLL --- Protokollsequenznummer 24635311 Protokoll gelöscht bis 24635311 Seiten bis 24635311 geleert Letzter Kontrollpunkt bei 24635302 0 ausstehende Log-Leervorgänge, 0 ausstehende CHKP-Schreibvorgänge 10 Log-E/A's erledigt, 0,00 Log-E/A's/Sekunde 3. Adaptiver Hash-Index: 1 Wenn einige Zeilen in der Tabelle sehr häufig verwendet werden, liest InnoDB im besten Fall zuerst die Indexseite, dann die Datenseite und dann Suchen Sie die Daten. Der Hash-Index verwendet den Hash des B + -Baumindex als Schlüssel und den Wert des B + -Baumindex (die Seite, auf die er verweist) als Wert. Mit der Einführung des Hash-Index kann InnoDB den Hash des Index berechnen Der Wert befindet sich direkt auf der Seite, auf der sich die Daten befinden. Daher ist die Hash-Indizierung für nicht bereichsbezogene Suchen vorteilhaft. 2 Wenn InnoDB den Bash-Index verwenden soll, müssen mehrere Bedingungen erfüllt sein: 1. innodb_adaptive_hash_index=1, damit InnoDB den Hash-Index aktiviert; dies ist jedoch nur die halbe Arbeit. InnoDB erstellt keine Hash-Indizes für alle Zeilen in der Tabelle. Es erstellt nur Hash-Indizes für häufig aufgerufene Zeilen in der Tabelle. Es ist Verschwendung, Hash-Indizes für kalte Daten zu erstellen. innodb_adaptive_hash_index_parts kann die Partitionierung des Hash-Index festlegen, was die Parallelität verbessern kann. 4. Redo-Log-Puffer: Der Inhalt des Redo-Log-Puffers wird regelmäßig auf die Festplatte geschrieben. Wenn der Redo-Log-Puffer größer eingestellt wird, ist es für MySQL von Vorteil, große Transaktionen zu verarbeiten. Der Grund dafür ist, dass bei der Verarbeitung großer Transaktionen Sie können Redo in den Redo-Log-Puffer schreiben, anstatt es auf die Festplatte zu schreiben. Da der Speicher schneller ist als die Festplatte, können große Transaktionen schneller verarbeitet werden. Mit anderen Worten: Der Redo-Log-Puffer ist größer. In diesem Fall können einige unnötige Datenträgerleerungsvorgänge vor dem Commit reduziert werden. 5. Systemtabellenbereich: Der InnoDB-Systemtabellenbereich enthält Folgendes: InnoDB-Datenwörterbuch, einige Speicherbereiche wie Doublewrite\Changebuffer\Undolog, wenn innodb_file_per_table Wenn es nicht geöffnet ist, werden die vom Benutzer erstellten Tabellen in diesem Systemtabellenbereich gespeichert. In diesem Fall kann der Systemtabellenbereich auch als gemeinsam genutzter Tabellenbereich angesehen werden. Oben finden Sie den detaillierten Inhalt der Zusammenfassung der wichtigen Komponenten von MySQL InnoDB. Weitere Informationen zu MySQL InnoDB-Komponenten finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Docker stellt nginx bereit und mountet Ordner und Dateioperationen
Überblick Ich glaube, dass wir häufig auf solche ...
Inhaltsverzeichnis Hintergrund Lösung 1 Ideen: Co...
= Nur beim Setzen und Aktualisieren wirkt es wie ...
Bereiten Sie die Datenbank (MySQL) vor. Wenn Sie ...
1. Grammatik Standort [=|~|~*|^~|@] /uri/ { ... }...
Inhaltsverzeichnis Containerhierarchie Der Prozes...
So verwenden Sie CSS-Variablen in JS Verwenden Si...
Mithilfe der Vue-Sprache und Elementkomponenten m...
Es ist sehr mühsam, eine virtuelle Maschine einzu...
<br />Frage: Wie schreibe ich in HTML, um zu...
Inhaltsverzeichnis Entwurfsszenario Technische Pu...
1. Liste Der Listen-UL- Container wird mit einer ...
Inhaltsverzeichnis 1. Was ist eine Unterabfrage? ...
Für gleichmäßig verteilte Layouts verwenden wir i...
Inhaltsverzeichnis 1. Neues Projekt erstellen 2. ...