InnoDB bietet:
- Transaktionen
- Locking auf Zeilen Ebene
- Speicherung in Tablespaces
- Referenzielle Integrität
- Primärschlüssel
- Datensatz-Cache
InnoDB Plugin bietet zustätzlich:
- Erweiterungen zur Performance und Skalierbarkeit
- Schnelleres Locking für bessere Skalierbarkeit auf Multi-Prozessor-Systemen
- Nutzung von mehren skalierbaren Memory Alloziierern
- dynamische Kontrolle von INSERT Buffering, adaptive Hash-Indexierung und Thread-Nebenläufigkeit
- Schnelle Index-Erstellung: Index erstellen oder löschen ohne Daten zu kopieren
- Datenkompremierung, Verkleinerung von Tabellen zur Reduzierung von I/O und Speicherverbrauch
- Neues Zeilenformat: fully off-page storage von long BLOB, TEXT und VARCHAR Spalten
- Dateiformatmanager: Zuständig für Auf- und Abwärtskompatibilität
- INFORMATION_SCHEMA Tabellen: Informationen über Kompression und Locking
- Weitere Änderungen für erhöhte Flexibilität, bessere Handhabung und Ausfallsicherheit
- Dynamische Kontrolle über viele Konfigurationsparameter
- TRUNCATE TABLE Wiederherstellung der *.ibd Datei um Speicher zurückzugewinnen
- “Strict mode” um Fehler zu vermeiden
- Kontrolle über die statistischen Beurteilungen des Optimizers
- Besseres Error Handling wenn Indexe verworfen werden
Und MyISAM bietet:
- Locking auf Tabellenebene
- Speicherung in getrennten Dateien (eine pro Tabelle)
- Volltextindizierung
- Daten-Komprimierung
Den Status der Tabelle kann man mit folgendem Befehl ermitteln:
SHOW TABLE STATUS LIKE ‚Tabellenname‘
Zur Laufzeit ist es problemlos möglich den Typen der Datenbank-Tabelle zu ändern:
ALTER TABLE `tabellen_name` TYPE=MYISAM
ALTER TABLE `tabellen_name` TYPE=InnoDB
Fazit:
MyISAM dürfte noch einen Performancevorteil gegenüber dem InnoDB Plugin in haben. Für welchen Datenbanktyp man sich schließlich entscheidet liegt oft an der Art der Applikation, die darauf zugreift. Sollten Features wie z.B. Transaktionssicherheit keine Rolle spielen, dann kann die Entscheidung auf MYISAM fallen. Jedoch hat mich das neue InnoDB Plugin von den Features als auch von der Performance überzeugt, dass ich mich dafür entschieden habe.
Quellen:
http://www.innodb.com/products/innodb_plugin/features/