2009-07-07 2 views

Antwort

8

Eine Transaktion sollte verwendet werden, wenn Sie eine Reihe von Änderungen benötigen, die vollständig verarbeitet werden müssen, um die Operation als abgeschlossen und gültig zu betrachten. Mit anderen Worten, wenn nur ein Teil erfolgreich ausgeführt wird, führt dies dazu, dass unvollständige oder ungültige Daten in Ihrer Datenbank gespeichert werden?

Zum Beispiel, wenn Sie eine Einfügung gefolgt von einer Aktualisierung haben, was passiert, wenn die Einfügung erfolgreich ist und die Aktualisierung fehlschlägt? Wenn dies zu unvollständigen Daten führen würde (in diesem Fall zu einem verwaisten Datensatz), sollten Sie die beiden Anweisungen in eine Transaktion einfügen, um sie als "set" abzuschließen.

+2

"verwendet werden, wenn Sie eine Reihe von Änderungen benötigt, muss verarbeitet werden" Ich denke, die zweite "Bedürfnisse" ist unnötig. –

4

Wenn Sie mehr als eine einzige datenmodifizierende Anweisung ausführen müssen, um eine Aufgabe abzuschließen, sollten alle innerhalb einer Transaktion sein.

Wenn der erste erfolgreich ist, aber einer der folgenden Fehler auftritt, können Sie alles rückgängig machen (rückgängig machen), als wäre nichts unternommen worden.

3

Wann immer Sie es nicht mögen, wenn ein Teil der Operation abgeschlossen werden kann und ein Teil davon nicht.

5

Wenn Sie zwei oder mehr Anweisungen ausführen, von denen Sie erwarten, dass sie funktional atomar sind, sollten Sie sie in eine Transaktion einbinden.

1

Immer wenn Sie Ihre Datenbank sperren und möglicherweise Ihre Produktionsanwendung zum Absturz bringen möchten, wann immer Sie Ihre Anwendung mit versteckten Skalierbarkeit Alpträume verwässern wollen, gehen Sie voran und erstellen Sie eine Transaktion. Mach es groß, langsam und lege eine Schleife hinein.

Im Ernst, keine der obigen Antworten erkennen die Abwägung und mögliche Probleme, die mit der starken Nutzung von Transaktionen kommen. Sei vorsichtig und berücksichtige das Risiko/die Belohnung jedes Mal.

Ebay verwendet sie überhaupt nicht. Ich bin mir sicher, dass es viele andere gibt.

http://www.infoq.com/interviews/dan-pritchett-ebay-architecture

+0

Es war immer interessant für mich, Ansätze zu finden, wie man Transaktionen durch andere Techniken ersetzen kann. –

0

Immer wenn ein Betrieb unter ACID fällt (Atomicity, Konsistenz, Isolation, Haltbarkeit) Kriterien, die Sie sollten Transaktionen

Lesen Sie diesen article