Wenn eine Transaktion bestätigt wurde, dann muss die Datenbank

Werbung
SOFTWARE
MySQL Tabellenarten und -typen
Datenbanken
Tabellenarten
Grundsätzlich unterscheidet MySQL zwei unterschiedliche Arten von Tabellen:

transaktionssichere Tabellen
InnoDB, NDB, BDB

nicht transaktionssichere Tabellen
ISAM, MyISAM, MERGE
Transaktionen
Bei Transaktionen geht es um folgendes Problem: Wie stellt man sicher, dass eine Abfolge von
einzelnen Datenbankoperationen als ganzes, untrennbares Paket durchgeführt wird. Es soll
beispielsweise verhindert werden, dass nur ein Teil der Operationen ausgeführt wird, und der
andere Teil – aus welchen Gründen auch immer – nicht. Sofern auch nur eine einzige Operation der
gesamten Transaktion fehlschlägt, müssen alle Änderungen, die bis dahin durchgeführt wurden,
rückgängig gemacht werden. Transaktionen sind:
A tomic - Atomar: Eine Transaktion soll als unzertrennbares Atom betrachtet werden, entweder als
ganzes erfolgreich, oder als ganzes nicht erfolgreich („Das Atom darf nicht gespalten werden“).
C onsistent - Konsistent: Einzelne Operationen innerhalb einer Transaktion müssen bereits konsistent
sein. Sie dürfen nicht bestehende Datenbank oder Business Regeln weder explizit noch implizit verletzen.
I solated - Isoliert: Das System muss noch nicht bestätigte Veränderungen einer Transaktion vor allen
anderen Transaktionen schützen (durch Locking).
D urable - Beständig: Wenn eine Transaktion bestätigt wurde, dann muss die Datenbank in der Lage
sein, alle vorgenommenen Veränderungen permanent zu speichern.
Transaktionssichere Tabellen (TST)
InnoDB, NDB, BDB
Transaktionssichere Tabellen beherrschen Transaktionen. Man kann

Statements kombinieren und alle auf einmal mit dem COMMIT-Befehl ausführen,

ROLLBACK ausführen, um Änderungen rückgängig zu machen,
Nicht Transaktionssichere Tabellen (NTST)
ISAM, MyISAM, Merge
Da bei nicht Transaktionssichere Tabellen der Transaktionsoverhead wegfällt,

sind diese schneller,

benötigen weniger Speicherplatz und Arbeitsspeicher.
Tabellentypen
Beim Erzeugen einer neuen Tabelle in MySQL muss man einen Tabellentyp (Storage Engine)
wählen. MySQL legt beim Erstellen einer neuen Tabelle immer eine .frm-Datei an, die die Tabellenund Spaltendefinitionen enthält. Abhängig vom Tabellentyp werden Index und Daten in anderen
Dateien gespeichert. Die Tabellentypen für den "alltäglichen" Einsatz sind:

MyISAM
standardmäßiger Tabellentyp

InnoDB
maximale Performance, transaktionssicher
Der standardmäßige Tabellentyp in MySQL ist MyISAM. Wenn man versucht, einen Tabellentyp zu benutzen,
der nicht einkompiliert oder aktiviert ist, erzeugt MySQL statt dessen eine Tabelle vom Typ MyISAM.
MyISAM-Tabellen
MyISAM ist der standardmäßige Tabellentyp. Er basiert auf dem ISAM-Code und hat viele nützliche
Erweiterungen. Der Index wird in einer Datei mit der Endung .MYI (MYIndex) gespeichert, die
Daten in einer Datei mit der Endung .MYD (MYData).
InnoDB-Tabellen
InnoDB wurde für maximale Performance bei der Bearbeitung großer Datenmengen entworfen. Die
Prozessor-Effizienz wird wahrscheinlich von keiner anderen Festplatten-basierenden relationalen
Datenbank-Engine erreicht.
BHAK/BHAS Amstetten
Helmut Wurzer
Herunterladen