Das Herz der Datenbank ist, neben dem eigentlichen MySQL-Daemon, die verwendete Storage-Engine. Im Gegensatz zu vielen kommerziellen Datenbanken wie Oracle und DB2 ist diese bei MySQL entkoppelt vom eigentlichen Serverprozess.
Diese Architekturfeinheit bietet dem Anwender die Möglichkeit innerhalb eines Servers mehrer Engines mit unterschiedlichen Features zu verwenden und abhängig von seinen Bedürfnissen auszuwählen. Hier eine Liste der aktuell existierenden Engines:
- MyISAM Storage Engine
- InnoDB Storage Engine
- MERGE Storage Engine
- MEMORY (HEAP) Storage Engine
- BDB (BerkeleyDB) Storage Engine (ab 5.1.12 nicht mehr unterstützt)
- EXAMPLE Storage Engine
- FEDERATED Storage Engine
- ARCHIVE Storage Engine
- CSV Storage Engine
- BLACKHOLE Storage Engine
Auf die Feinheiten der einzelnen Engines einzugehen würde den Rahmen dieses Beitrags sprengen, jedoch ist der Unterschied zwischen den beiden meist verwendeten Engines MyISAM und InnoDB kurz zu beleuchten: InnoDB ist wie auch die BDB-Engine eine transaktionssichere Datenbank, welche beim parallelen Zugriff mehrerer Benutzer besser geeignet ist, da sie mit Hilfe von Row-Level-Locking und ACID-Transaktion die Datenkonsistenz sicherstellt und trotzdem gutes Antwortzeitverhalten liefert. Da MyISAM auf solche Features verzichtet und großzügig auch mal eine ganze Tabelle blockiert, ist sie für diese Anforderung ungeeignet, bietet aber wiederum im seriellen Zugriff, wie z.B. beim Reporting oder anderen Analyseverfahren eine meist bessere Leseperformance.
Da MySQL einen Mischbetrieb erlaubt kann man natürlich seine Tabellen den individuelle Bedürfnissen anpassen.
Im nächsten Teil geht es um den MySQL-Proxy.
0 Kommentare
Trackbacks/Pingbacks