482 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
8 MySQL-Tabellentypen
AB MySQL-Version 3.23.6 k¨onnen Sie unter drei grundlegenden Tabellenformaten (ISAM,
HEAP und MyISAM w¨ahlen. Neuere MySQL-Versionen k¨onnen zus¨atzliche Tabellentypen
unterst¨utzen (InnoDB, oder BDB), abh¨angig davon, wie Sie sie kompilieren.
Beim Erzeugen einer neuen Tabelle k¨onnen Sie MySQL mitteilen, welcher Tabellentyp daf¨ur
benutzt werden soll. MySQL erzeugt immer eine .frm-Datei, die die Tabellen- und Spal-
tendefinitionen enth¨alt. Abh¨angig vom Tabellentyp werden Index und Daten in anderen
Dateien gespeichert.
Beachten Sie, dass Sie f¨ur die Benutzung von InnoDB-Tabellen zumindest die innodb_data_
file_path-Startoption ben¨otigen. Siehe Abschnitt 8.5.2 [InnoDB start], Seite 496.
Der vorgabem¨aßige Tabellentyp in MySQL ist MyISAM. Wenn Sie versuchen, einen Tabel-
lentyp zu benutzen, der nicht einkompiliert oder aktiviert ist, erzeugt MySQL statt dessen
eine Tabelle vom Typ MyISAM. Das ist ein sehr n¨utzliches Feature, wenn Sie Tabellen zwis-
chen unterschiedlichen SQL-Servern kopieren wollen, die unterschiedliche Tabellentypen
unterst¨utzten (zum Beispiel Tabellen zu einem Slave kopieren, der f¨ur Geschwindigkeit
optimiert ist, aber keine transaktionalen Tabellen hat). Dieses automatische
¨
Andern des
Tabellentyps kann andererseits f¨ur neue MySQL-Benutzer sehr verwirrend sein. Wir planen
f¨ur MySQL 4.0, das zu beheben, indem eine Warnung ausgegeben wird, wenn ein Tabellen-
typ automatisch ge¨andert wird.
Sie k¨onnen Tabellen zwischen unterschiedlichen Typen mit dem ALTER TABLE-Statement
umwandeln. Siehe Abschnitt 7.5.4 [ALTER TABLE], Seite 464.
MySQL unterst¨utzt zwei unterschiedliche Arten von Tabellen: transaktionssichere Tabellen
(InnoDB und BDB) und nicht transaktionssichere Tabellen (HEAP, ISAM, MERGE und MyISAM).
Vorteile transaktionssicherer Tabellen (TST):
• Sicherer. Selbst wenn MySQL abst¨urzt oder wenn Sie Hardware-Probleme bekommen,
bekommen Sie Ihre Daten zur¨uck, entweder ¨uber automatische Wiederherstellung oder
von einer Datensicherung plus Transaktionslog-Datei.
• Sie k¨onnen viele Statements kombinieren und alle in einem Rutsch mit dem COMMIT-
Befehl akzeptieren.
• Sie k¨onnen ROLLBACK ausf¨uhren, um Ihre
¨
Anderungen zu ignorieren (wenn Sie nicht im
Auto-Commit-Modus fahren).
• Wenn eine Aktualisierung fehlschl¨agt, werden Ihre
¨
Anderungen zur¨uckgesichert. (Bei
nicht transaktionssicheren Tabellen sind durchgef¨uhrte
¨
Anderungen permanent.)
Vorteile nicht transaktionssicherer Tabellen (NTST):
• Viel schneller, da es keinen Transaktionsoverhead gibt.
• Ben¨otigen aufgrund des fehlenden Transaktionsoverheads weniger Speicherplatz.
• Ben¨otigen weniger Arbeitsspeicher f¨ur Aktualisierungen.
Sie k¨onnen TST- and NTST-Tabellen in denselben Statements kombinieren, um das Beste
aus beiden Welten zu bekommen.
Kommentare zu diesen Handbüchern