Die Datenbankspeicher-Engine ist die zugrunde liegende Softwareorganisation der Datenbank. Das Datenbankverwaltungssystem (DBMS) verwendet die Daten-Engine zum Erstellen, Abfragen, Aktualisieren und Löschen von Daten. Verschiedene Speicher-Engines bieten unterschiedliche Speichermechanismen, Indizierungstechniken, Sperrebenen und andere Funktionen. Durch die Verwendung verschiedener Speicher-Engines können Sie auch bestimmte Funktionen erhalten.
Viele verschiedene Datenbankverwaltungssysteme unterstützen mittlerweile eine Vielzahl unterschiedlicher Daten-Engines. Der Kern von MySql ist die Speicher-Engine.
Storage-Engine-Ansicht
MySQL bietet Entwicklern die Funktion, die Storage-Engine abzufragen. Ich verwende hier MySQL5.1. , können Sie das Befehlszeilenfenster verwenden:
SHOW ENGINES
, um die von MySQL verwendete Engine anzuzeigen. Die Ausgabe des Befehls ist (ich verwende Navicat Premium):
Angesichts der Tatsache, dass MySQL Benutzern so viele Speicher-Engines zur Verfügung stellt, darunter Engines, die transaktionssichere Tabellen verarbeiten, und Engines, die nicht transaktionssichere Tabellen haben.
Wenn Sie überprüfen möchten, welche Engine die Datenbank standardmäßig verwendet, können Sie den Befehl:
SHOW VARIABLES LIKE 'storage_engine';
verwenden, um das Abfrageergebnis zu überprüfen ist:
In MySQL ist es nicht erforderlich, im gesamten Server dieselbe Speicher-Engine zu verwenden. Je nach spezifischen Anforderungen können für jede Tabelle unterschiedliche Speicher-Engines verwendet werden. Der Wert der Spalte „Unterstützung“ gibt an, ob eine bestimmte Engine verwendet werden kann: JA bedeutet, dass sie verwendet werden kann, NEIN bedeutet, dass sie nicht verwendet werden kann, und STANDARD bedeutet, dass die Engine die aktuelle Standardspeicher-Engine ist.
Werfen wir einen Blick auf einige der am häufigsten verwendeten Motoren.
1. Innodb
unterstützt Transaktionen und ist transaktionssicher. Es bietet Sperren auf Zeilenebene und Fremdschlüsseleinschränkungen und verfügt über einen Pufferpool zum Puffern von Daten und Indizes .
Anwendbare Szenarien: Wird für die Transaktionsverarbeitung mit ACID-Transaktionsunterstützung verwendet und auf Tabellen angewendet, die eine große Anzahl von Einfüge- und Aktualisierungsvorgängen ausführen.
2. MyISAM
Unterstützt keine Transaktionen, Fremdschlüsseleinschränkungen oder Sperren auf Zeilenebene, die Tabelle wird jedoch gesperrt Die Anzahl der Zeilen wird gespeichert, sodass die Ausführung bei der Ausführung von „select count(*) from tablename“ besonders schnell erfolgt.
Anwendbare Szenarien: Wird zur Verwaltung nichttransaktionaler Tabellen verwendet und bietet Hochgeschwindigkeitsabruf- und Volltextabruffunktionen. Geeignet für Tabellen mit einer großen Anzahl ausgewählter Vorgänge, z. B. Protokolltabellen.
3. SPEICHER
Erstellen Sie eine Tabelle mit den im Speicher vorhandenen Inhalten. Jeder Speicher entspricht tatsächlich nur einer Festplattendatei. Da es im Speicher vorhanden ist, ist die Speicherzugriffsgeschwindigkeit sehr hoch und die Engine verwendet einen Hash-Index, der gleichzeitig gefunden werden kann. Es ist nicht erforderlich, wie bei einem B-Baum vom Wurzelknoten zum Verzweigungsknoten zu suchen Daher ist die Zugriffsgeschwindigkeit bei präzisen Abfragen sehr hoch, bei einer genauen Suche ist sie jedoch sehr hoch, z. B. bei dieser Art der Bereichssuche funktioniert Hashing nicht. Darüber hinaus gehen die Daten in der Tabelle verloren, sobald der Dienst heruntergefahren wird, da sie nicht auf der Festplatte gespeichert werden.
Anwendbare Szenarien: Wird hauptsächlich für Tabellen verwendet, deren Inhalt sich selten ändert, oder als Zwischen-Nachschlagetabelle. Seien Sie beim Aktualisieren der Tabelle vorsichtig, da die Daten nicht auf die Festplatte geschrieben wurden. Bevor Sie den Dienst beenden, müssen Sie die Speicherung der Daten berücksichtigen
4. MERGE
MERGE-Speicher-Engine Eine Gruppe von MyISAM-Datentabellen wird als logische Einheit behandelt, sodass wir sie gleichzeitig abfragen können. Jedes Mitglied der MyISAM-Datentabelle, das eine MERGE-Datentabellenstruktur darstellt, muss genau dieselbe Struktur haben. Die Datenspalten jeder Mitgliedsdatentabelle müssen mit demselben Namen und Typ in derselben Reihenfolge definiert werden, und die Indizes müssen in derselben Reihenfolge und auf dieselbe Weise definiert werden.
Die MERGE-Datentabelle erleichtert nicht nur die gleichzeitige Referenzierung mehrerer Datentabellen ohne mehrere Abfragen, sondern bietet auch die folgenden Annehmlichkeiten.
Die MERGE-Datentabelle kann verwendet werden, um eine logische Einheit zu erstellen, deren Größe die von jeder MyISAM-Datentabelle maximal zulässige Länge überschreitet.
Sie können eine komprimierte Datentabelle sehen, die in der MERGE-Datentabelle enthalten ist. Beispielsweise sollten Sie nach Ablauf eines bestimmten Jahres keine Datensätze mehr zur entsprechenden Protokolldatei hinzufügen, sodass Sie diese mit dem Tool myisampack komprimieren können, um Platz zu sparen, und die MERGE-Datentabelle weiterhin wie gewohnt funktionieren kann
Das obige ist der detaillierte Inhalt vonWas sind die MySQL-Engines?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!