MySQL Series 7 MySQL-Speicher-Engine

MySQL Series 7 MySQL-Speicher-Engine

1. MyISAM-Speicher-Engine

Mangel:

  1. Keine Unterstützung für Transaktionen
  2. Mindestgranularitätssperre: Tabellenebene
  3. Lesen und Schreiben blockieren sich gegenseitig. Sie können nicht lesen, während Sie schreiben, und Sie können nicht schreiben, während Sie lesen.
  4. Unterstützt kein MVCC (unterstützt den Mechanismus zur Kontrolle der Parallelität mehrerer Versionen)
  5. Clustered-Indizes werden nicht unterstützt
  6. Keine Unterstützung für Daten-Caching
  7. Fremdschlüssel werden nicht unterstützt
  8. Schlechte Absturzwiederherstellung

Vorteil:

  1. Unterstützt bis zu 256 TB Speicherplatz
  2. Lesen Sie Daten schneller und verbrauchen Sie weniger Ressourcen

Speicherdateien der MyISAM-Engine:

  • tbl_name.frm: Tabellenformatdefinition
  • tbl_name.MYD: Datendatei
  • tbl_name.MYI: Indexdatei

Anwendbare Szenarien: Die Standarddatenbank-Engine vor MySQL 5.5.5, anwendbar in Szenarien, in denen die Daten schreibgeschützt sind (oder weniger geschrieben werden) und die Tabelle klein ist (wo ein langer Reparaturvorgang akzeptiert werden kann)

2: InnoDB-Speicher-Engine

Merkmale:

  1. 64 TB
  2. Supportangelegenheiten
  3. Sperren auf Zeilenebene
  4. Unterstützt den Multi-Version Concurrency Control Mechanismus (MVCC)
  5. Unterstützt gruppierten Index
  6. Unterstützt die Datenzwischenspeicherung
  7. Unterstützt Fremdschlüssel

InnoDB-Datenbankdateien:

  • tb_name.frm: Tabellenformatdefinition
  • tb_name.ibd: Datendatei

Hinweis: Standardmäßig werden alle InnoDB-Tabellendatendateien im Datenbankverzeichnis in ibddata1, ibddata2 usw. gespeichert, was die Verwaltung äußerst umständlich macht.

Dringend empfohlen: Aktivieren Sie innodb_file_per_table=ON und verwenden Sie für jede Tabelle einen separaten Tablespace zum Speichern der Daten und Indizes der Tabelle.

Aktivieren: innodb_file_per_table

Bearbeiten Sie /etc/my.cnf und fügen Sie innodb_file_per_table unter [mysqld] hinzu.
Starten Sie den Server neu# service mysqld restart
MariaDB [(keine)]> VARIABLEN WIE 'innodb_file_per_table' ANZEIGEN;
+--------------------------+----------+
| Variablenname | Wert |
+--------------------------+----------+
| innodb_file_per_table | EIN |
+--------------------------+----------+

1. Speicher-Engines verwalten

Sehen Sie sich die von MySQL unterstützten Speicher-Engines an: MariaDB [(none)]> SHOW ENGINES\G

Sehen Sie sich die aktuelle Standard-Speicher-Engine an:

MariaDB [(keine)]> VARIABLEN WIE 'storage_engine' ANZEIGEN;
+----+--------+
| Variablenname | Wert |
+----+--------+
| Speichermaschine | InnoDB |
+----+--------+

Legen Sie die Standard-Speicher-Engine fest:

Bearbeiten Sie /etc/my.conf und fügen Sie default_storage_engine = InnoDB unter [mysqld] hinzu

2. Cache der InnoDB-Speicher-Engine

Der Pufferpool der InnoDB-Speicher-Engine weist normalerweise eine Pufferpool-Trefferquote von nicht weniger als 99 % auf.

Zugehörige Zustandsvariablen:

MariaDB [(keine)]> GLOBALEN STATUS ANZEIGEN WIE 'innodb%read%'\G
  • Innodb_buffer_pool_reads: Gibt an, wie oft eine Seite von der physischen Festplatte gelesen wird
  • Innodb_buffer_pool_read_ahead: Anzahl der Vorab-Lesevorgänge
  • Innodb_buffer_pool_read_ahead_evicted: Die Anzahl der Seiten, die vorab gelesen, aber ungelesen aus dem Pufferpool ersetzt wurden. Dies wird im Allgemeinen verwendet, um die Effizienz des Vorablesens zu bestimmen.
  • Innodb_buffer_pool_read_requests: Häufigkeit, mit der eine Seite aus dem Pufferpool gelesen wird
  • Innodb_data_read: Gesamtzahl der gelesenen Bytes
  • Innodb_data_reads: Die Anzahl der initiierten Lesevorgänge. Jeder Lesevorgang kann das Lesen mehrerer Seiten erfordern.

Trefferquote des Innodb-Pufferpools = Innodb_buffer_pool_read_requests / (Innodb_buffer_pool_read_requests + Innodb_buffer_pool_read_ahead + Innodb_buffer_pool_reads)

Durchschnittliche Anzahl von Bytes pro Lesevorgang = Innodb_data_read / Innodb_data_reads

3. Andere Speicher-Engines

  • Performance_Schema: Performance_Schema-Datenbank;
  • Speicher: Alle Daten werden im RAM gespeichert, um einen schnellen Zugriff in Umgebungen zu ermöglichen, in denen eine schnelle Suche nach Referenz- und anderen ähnlichen Daten erforderlich ist. Geeignet zum Speichern temporärer Daten. Die Engine war zuvor als HEAP-Engine bekannt;
  • MRG_MyISAM: Ermöglicht einem MySQL DBA oder Entwickler, eine Reihe identischer MyISAM-Tabellen logisch zu gruppieren und sie als einzelnes Objekt zu referenzieren. Anwendbar auf VLDB-Umgebungen (Very Large Data Base), wie etwa Data Warehouses;
  • Archiv: Zum Speichern und Abrufen großer Mengen selten referenzierter Archiv- oder Sicherheitsprüfinformationen, unterstützt nur SELECT- und INSERT-Operationen; unterstützt Zeilensperren und dedizierte Puffer;
  • Federated Federation: Ein Proxy, der für den Zugriff auf andere Remote-MySQL-Server verwendet wird. Er stellt eine Client-Verbindung zu einem Remote-MySQL-Server her, überträgt die Abfrage zur Ausführung an den Remote-Server und schließt dann den Datenzugriff ab. Er bietet die Möglichkeit, separate MySQL-Server zu verknüpfen, um eine logische Datenbank aus mehreren physischen Servern zu erstellen. Sehr gut geeignet für verteilte oder Data-Mart-Umgebungen;
  • BDB: Eine Transaktions-Engine, die InnoDB ersetzen kann und COMMIT, ROLLBACK und andere Transaktionsfunktionen unterstützt;
  • Cluster/NDB: Die geclusterte Datenbank-Engine von MySQL, besonders geeignet für Anwendungen mit hohen Suchleistungsanforderungen, die zugleich höchste Betriebszeit und Verfügbarkeit erfordern.
  • CSV: Die CSV-Speicher-Engine speichert Daten in Textdateien im durch Kommas getrennten Werteformat. Der Datenaustausch zwischen anderer Software und Anwendungen kann mithilfe der CSV-Engine im CSV-Format importiert und exportiert werden.
  • BLACKHOLE: Die Black Hole-Speicher-Engine akzeptiert Daten, speichert sie aber nicht, und beim Abrufen wird immer ein leerer Satz zurückgegeben. Diese Funktion kann beim Entwurf verteilter Datenbanken verwendet werden, bei dem Daten automatisch repliziert, aber nicht lokal gespeichert werden.
  • Beispiel: eine „Stub“-Engine, die nichts tut. Mit dieser Engine können Tabellen erstellt werden, es können jedoch keine Daten darin gespeichert oder daraus abgerufen werden. Es ist als Beispiel für den Einstieg in das Schreiben einer neuen Speicher-Engine gedacht.

Dies ist das Ende dieses Artikels über die MySQL-Reihe, Teil sieben, MySQL-Speicher-Engine. Weitere Informationen zur MySQL-Speicher-Engine 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!

Das könnte Sie auch interessieren:
  • Analyse basierend auf der MySQL-Architektur
  • Detaillierte Analyse basierend auf der MySQL-Architektur
  • Detaillierte Erklärung der Speicher-Engine in MySQL
  • Kenntnisse über die MySQL Memory-Speicher-Engine
  • Detaillierte Erläuterung der Speicherverwaltung der MySQL InnoDB-Speicher-Engine
  • Unterschiede und Vergleiche von Speicher-Engines in MySQL
  • Detaillierte Erläuterung verschiedener Sperren in der InnoDB-Speicher-Engine in MySQL
  • Detaillierte Erklärung nicht gruppierter Indizes in der MyISAM-Speicher-Engine von MySQL
  • MySQL-Speicher-Engines InnoDB und MyISAM
  • Einführung in die MySQL-Architektur und Speicher-Engine

<<:  CSS-Schreibformat, detaillierte Erklärung der Grundstruktur einer mobilen Seite

>>:  Empfehlen Sie einige nützliche Lernmaterialien für Neulinge im Webdesign

Artikel empfehlen

Verwenden Sie three.js, um coole 3D-Seiteneffekte im Acid-Stil zu erzielen

In diesem Artikel wird hauptsächlich die Verwendu...

Grafisches Installationstutorial für MySQL 8.0.17

In diesem Artikel finden Sie das grafische Tutori...

nginx+tomcat-Beispiel für den Zugriff auf das Projekt über den Domänennamen

Ich wollte wissen, wie ich mit einem Domänennamen...

Konfigurationsmethode für das Nginx-Anforderungslimit

Nginx ist ein leistungsstarker, leistungsstarker ...

So verwenden Sie LibreOffice zum Konvertieren von Dokumentformaten unter CentOS

Die Projektanforderungen erfordern eine gewisse V...

Analyse des Prinzips und der Verwendung von MySQL-Benutzerdefinierten Funktionen

Dieser Artikel veranschaulicht anhand von Beispie...

mysql5.7-Remotezugriffseinstellungen

Das Einrichten des Fernzugriffs in mysql5.7 funkt...

MySQL 8.0.11 Installationshandbuch für Mac

MAC installiert mysql8.0, der spezifische Inhalt ...