3 Stimmen

Vorteile der Verwendung von Mysql-Transaktionen

Ich habe gerade von dieser Funktion in innodb erfahren und bin ein wenig verwirrt.

Gibt es außer der Möglichkeit, mehrere Abfragen durchzuführen und bei Fehlschlagen einer dieser Abfragen ein Rollback durchzuführen, noch andere Möglichkeiten?

Und sind sie langsamer als die normalen Abfragen?

4 Stimmen

Eine Tranasaktion ist ein grundlegendes Konzept für Datenbanken (und andere Systeme). Ich schlage vor, Sie lesen zuerst Wiki.... de.wikipedia.org/wiki/Datenbank_transaktion

7voto

Hammerite Punkte 20657
Besides being able to do multiple queries and rollback if one of them fails, are there any others?

Das ist einer von ihnen. Der größte Vorteil ist wahrscheinlich, dass Sie sicherstellen können, dass Sie die Datenbank nie in einem inkonsistent Auch ein anderer Benutzer, der zur gleichen Zeit wie Sie auf die Datenbank zugreift, wird keine inkonsistenten Daten sehen. Wenn Sie z. B. eine Bank leiten und die Kunden in der Lage sein müssen, Geld auf die Konten der anderen zu überweisen, möchten Sie nicht, dass in einem Schnappschuss der Daten Geld fehlt oder überschüssiges Geld vorhanden ist. Wenn also ein Kunde einem Freund 100 Dollar überweist, würde das im Allgemeinen so funktionieren:

  • 100 $ gehen auf das Konto des ersten Kunden
  • 100 Dollar gehen auf dem Konto des Freundes ein

Ohne Transaktionen könnten Sie, wenn Sie die beiden Konten zum falschen Zeitpunkt betrachten, beide Konten ohne die 100 Dollar sehen und zu dem Schluss kommen, dass Ihre Verbindlichkeiten um 100 Dollar geringer sind oder so. Mit Transaktionen sehen Sie die Konten entweder so, wie sie vor der Transaktion waren, oder so, wie sie danach waren - kein Widerspruch.

And are they slower than the normal queries?

Soweit ich weiß, haben Transaktionen keine nennenswerten Leistungseinbußen zur Folge.

4voto

Bruno Punkte 114719

Mit Hilfe von Transaktionen können Sie ACID-Eigenschaften (Atomarität, Konsistenz, Isolation, Dauerhaftigkeit) durchsetzen: http://en.wikipedia.org/wiki/ACID

1voto

Transaktionen haben zwei Hauptzwecke:

  • Sicherstellung der Atomarität eines komplexen Vorgangs, d. h. wenn ein Schritt fehlschlägt, wird die gesamte Transaktion zurückgerollt, so dass die DB nicht in einem inkonsistenten Zustand verbleibt.
  • Sicherstellung eines einheitlichen Zustands. Wenn Sie mehrere Leseabfragen durchführen möchten, aber nicht wollen, dass eine dazwischenliegende Operation die Daten in der DB ändert, dann verpacken Sie die Lesevorgänge einfach in eine Transaktion.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X