Autor: limbinan
Die MySQL-Plug-in-Speicher-Engine ist eine Komponente im MySQL-Datenbankserver, die für die Durchführung tatsächlicher Daten-E/A-Vorgänge für die Datenbank verantwortlich ist und bestimmte Funktionssätze für spezielle Anwendungsanforderungen zulassen und erzwingen kann. Einer der Hauptvorteile der Verwendung einer speziellen Speicher-Engine besteht darin, dass nur die für eine bestimmte Anwendung erforderlichen Funktionen bereitgestellt werden, sodass weniger Systemaufwand in der Datenbank entsteht und das Endergebnis eine effizientere und höhere Datenbankleistung ist. Dies ist einer der Gründe, warum MySQL durchweg als leistungsstark angesehen wird und in Branchenstandard-Benchmarks mit proprietären monolithischen Datenbanken mithalten oder diese sogar übertreffen kann.
Was sind aus technischer Sicht einige der einzigartigen Komponenten der Speicher-Engine, die die zugrunde liegende Struktur unterstützen? Zu den wichtigsten Unterschieden gehören:
· Parallelität: Für einige Anwendungen gelten Sperranforderungen auf detaillierterer Ebene (z. B. Sperren auf Zeilenebene) als für andere. Die Wahl der richtigen Sperrstrategie kann den Overhead reduzieren und zur Verbesserung der Gesamtleistung beitragen. Es umfasst auch Unterstützung für Funktionen wie die Parallelitätskontrolle mehrerer Versionen oder „Snapshot“-Lesevorgänge.
·Transaktionsunterstützung: Nicht alle Anwendungen erfordern Transaktionen, aber für Anwendungen, die Transaktionen erfordern, gibt es klar definierte Anforderungen, wie z. B. ACID-Kompatibilität.
·Referenzielle Integrität: Durch in DDDL definierte Fremdschlüssel muss der Server die referenzielle Integrität der zugehörigen Datenbank erzwingen.
· Physischer Speicher: Dies umfasst eine Vielzahl von Dingen, von der Gesamtseitengröße von Tabellen und Indizes über das zum Speichern der Daten erforderliche Format bis hin zur physischen Festplatte.
·Indexunterstützung: Verschiedene Anwendungen neigen dazu, unterschiedliche Indizierungsstrategien zu verwenden, aber einige Indizierungsmethoden (z. B. B-Tree-Indizes) sind bei fast allen Speicher-Engines üblich.
Speicher-Caching: Verschiedene Anwendungen reagieren besser auf bestimmte Speicher-Caching-Strategien als andere. Während also einige Speicher-Caching-Funktionen allen Speicher-Engines gemeinsam sind (z. B. für den Connection-Cache der Benutzer, den Hochgeschwindigkeits-Abfrage-Cache von MySQL usw.), sind andere Caching-Strategien nur definiert Einzigartig bei Verwendung einer speziellen Speicher-Engine.
·Leistungsunterstützung: einschließlich mehrerer E/A-Threads für parallele Vorgänge, Thread-Parallelität, Datenbankprüfpunkte, Batch-Insert-Verarbeitung usw.
·Andere Zielfunktionen: können Unterstützung für Geodatenoperationen, Sicherheitsbeschränkungen für bestimmte Datenverarbeitungsoperationen usw. umfassen.
Jeder Satz von Basiskomponenten der Plug-in-Speicher-Engine ist entsprechend konzipiert, um einen auswählbaren Satz von Funktionen für bestimmte Anwendungen bereitzustellen. Auf der anderen Seite trägt die Vermeidung von Komponentenattributsammlungen dazu bei, unnötigen Overhead zu vermeiden. Daher ist es offensichtlich, dass man die Anforderungen einer bestimmten Anwendung verstehen und die geeignete MySQL-Speicher-Engine auswählen sollte, die die Gesamteffizienz und Leistung des Systems erheblich verbessern kann.