Weiter Zurück [Inhalt] Online Suche im Handbuch

17.9 Transaktionen

Transaktionen fassen viele Lese und Schreibzugriffe zu einem Prozeß zusammen, der dann sehr schnell ausgeführt wird. Hierzu ist ein Transaktionspuffer notwendig, der verzögert alle Änderungen in die Datenbank schreibt. Mit Transaktionen kann man das Schreiben von vielen Clients in eine Datenbank drastisch beschleunigen. Zumindest hat dann der User den Eindruck, die Datenbank würde schnell arbeiten. In Wirklichkeit werden diese INSERT und UPDATE Befehle in eine Art QUEUE geschoben, die dann langsam abgearbeitet wird. Hierzu wird im Allgemeinen mit BeginTrans/CommitTrans und dem Verwerfen einer Transaktion RollbackTrans gearbeitet. CommitTrans sorgt dafür, daß die Änderungen auch tatsächlich durchgeführt werden. Leider können nur wenige Datenbanken Transaktionen dann noch durchführen, wenn verteilte Datenbanken, Tabellen in anderen Datenformaten (ACCESS), oder gleichzeitig Datensynchronisation eingesetzt werden müssen. Hier sollte man sich genauestens beim Hersteller informieren.

MySQL kann jedoch die Befehle, wie INSERT mit einer niedrigen Priorität versehen (LOW_PRIORITY), sodaß der Befehl erst dann ausgeführt wird, wenn MySQL eine kurze Pause hat. Dank der Multi-Thread Architektur ist das ohne Probleme möglich.

Wer allerdings mit ACCESS als Frontend, ODBC und MySQL arbeitet, der kann den Transaktionsmechanismus (Siehe obige Befehle aus ACCESS) von ACCESS selber nutzen.

Ein guter Workaround ist der Einsatz von MySQL zusammen mit PERL oder besser PHP3. Unter PHP3 kann man die Suchergebnisse in eine temporäre Datei schreiben, und in diesen dann mit Hilfe des PHP3 Interpreters blättern. Beispiele finden Sie im Kapitel Programmierung mit PHP3 3.0/4.0. Schreibvorgänge kann man logischerweise ebenso mit PHP3 3.0/4.0 speichern, und später unter Verwendung von des Ausdrucks low_priority, siehe auch LOW_PRIORITY, verzögert in die Datenbank schreiben. Im Grunde funktioniert der Transaktionsmechanismus anderer Datenbanken ebenfalls mit Hilfe eines vorgeschalteten Programmes, welches diese Transaktionen bündelt und optimiert. Angesichts der wenigen Zeilen zusätzlich, die man in PHP3 3.0/4.0 benötigt, um diesen Mechanismus zu implementieren, ist dies keine Hindernis, sondern eher ein Vorteil bei verteilten Datenbanksystemen, da man die temporären Dateien via FTP oder sogar via E-Mail über das Internet verbreiten und somit die Datenbanken synchronisieren kann. Auf diese Art und Weise werden sogar Standleitungen entbehrlich. Siehe hierzu auch das Kapitel Verteilte Datenbanken


Weiter Zurück [Inhalt] Online Suche im Handbuch