MySQL und Transaktionen



  • Hi,

    mit innodb unterstützt MySQL ja Transaktionen, um sicherzugehen, dass Abfragen am Stück ausgeführt werden.

    Wenn ich nun aber unter MyIsam arbeite und Lock Tables nutze, habe ich doch auch so ne Art Transaktionen? Weil niemand kann von außen in der Zeit meiner "Transaktion" (also Lock Table) an den Daten was ändern? Eigentlich müsste MyIsam dann doch ausreichen?

    Oder habe ich da einen Denkfehler?

    Smilla



  • Transaktionen werden verwendet um Daten vollständig, konsistent, isoliert und dauerhaftig zu speichern. Dein Ansatz erfüllt nur die Isoliertheit, Du kannst die anderen nicht garantieren, wenn der Server abschmiert.



  • Das mit dem Denkfehler trifft's schon ...

    Bei Änderungen in mehreren Tabellen "gleichzeitig" bettet man das in eine
    Transaktion ein. Haut's den Server währenddessen in die Tonne kann das das
    System so rückgängig machen als ob nichts geschehen wäre. Erst wenn die
    Transkation komplett ist, sind die Änderungen wirksam und dauerhaft.

    Mit Abfragen hat das nichts zu tun.



  • Siehe auch Wikipedia: http://de.wikipedia.org/wiki/ACID



  • Transaction sind nicht nur dazu da wenn der Server nicht mehr funktioniert.
    STell Dir vor du macht eine Banküberweisung.
    Da wird dir zuerst Geld abgezogen und dieses in eine andere Tabelle geschrieben.
    Wenn aber das schreiben in die andere Tabelle nicht funktioniert würde der Delete in deiner Kontotabelle trotzdem ausgeführt werden.
    Fazit: Dein Geld ist weg aber auf dem anderen Konto nicht gutgeschrieben.


Anmelden zum Antworten