Zusammenfassung wichtiger Komponenten von MySQL InnoDB

Zusammenfassung wichtiger Komponenten von MySQL InnoDB

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:
  • Detaillierte Erläuterung der Speicherverwaltung der MySQL InnoDB-Speicher-Engine
  • Hauptfunktionen von MySQL Innodb: Einfügepuffer
  • Zusammenfassung der MySQL InnoDB-Sperren
  • So unterscheiden Sie MySQLs innodb_flush_log_at_trx_commit und sync_binlog
  • Detailliertes Beispiel des MySQL InnoDB-Sperrmechanismus
  • Ausführliche Erläuterung der InnoDB-Sperren in der MySQL-Technologie
  • Ändern Sie die MySQL-Datenbank-Engine in InnoDB
  • Analyse der Unterschiede zwischen Mysql InnoDB und MyISAM
  • So ermitteln Sie die Höhe des MySQL InnoDB B+-Baums
  • Eine kurze Einführung in MySQL InnoDB ReplicaSet

<<:  Docker stellt nginx bereit und mountet Ordner und Dateioperationen

>>:  Detaillierte Erklärung von Inline-Elementen und Block-Level-Elementen in häufig verwendeten HTML-Tags

Artikel empfehlen

MySQL-Gruppierungsabfragen und Aggregatfunktionen

Überblick Ich glaube, dass wir häufig auf solche ...

Eine kurze Analyse der Unterschiede zwischen „:=“ und „=“ in MySQL

= Nur beim Setzen und Aktualisieren wirkt es wie ...

Tutorial zum Migrieren von Projekten von MYSQL zu MARIADB

Bereiten Sie die Datenbank (MySQL) vor. Wenn Sie ...

Beispiel einer Nginx-Standortübereinstimmungsregel

1. Grammatik Standort [=|~|~*|^~|@] /uri/ { ... }...

Eine kurze Diskussion über das Design des Tomcat-Mehrschichtcontainers

Inhaltsverzeichnis Containerhierarchie Der Prozes...

So verwenden Sie CSS-Variablen in JS

So verwenden Sie CSS-Variablen in JS Verwenden Si...

Vue verwendet Monaco, um Codehervorhebung zu erreichen

Mithilfe der Vue-Sprache und Elementkomponenten m...

Nach dem Absenden des Formulars zu einer anderen Datei wechseln

<br />Frage: Wie schreibe ich in HTML, um zu...

Ausführliche Erläuterung der HTML-Grundlagen (Teil 2)

1. Liste Der Listen-UL- Container wird mit einer ...

MySQL-Tutorial: Ausführliche Erklärung zum Unterabfragebeispiel

Inhaltsverzeichnis 1. Was ist eine Unterabfrage? ...