2009-07-07 6 views

Répondre

8

Une transaction doit être utilisée lorsque vous avez besoin d'un ensemble de modifications à traiter complètement pour considérer l'opération complète et valide. En d'autres termes, si seulement une partie s'exécute avec succès, cela entraînera-t-il le stockage de données incomplètes ou invalides dans votre base de données? Par exemple, si vous avez une insertion suivie d'une mise à jour, que se passe-t-il si l'insertion réussit et que la mise à jour échoue? Si cela aboutit à des données incomplètes (dans ce cas, un enregistrement orphelin), vous devez envelopper les deux instructions dans une transaction pour les obtenir en tant que "jeu".

+2

"être utilisé lorsque vous avez besoin d'un ensemble de modifications doit être traitée" Je pense que le second «besoins» est inutile. –

4

Si vous avez plusieurs instructions de modification de données à exécuter pour effectuer une tâche, toutes doivent être dans une transaction. De cette façon, si le premier a réussi, mais que l'un des suivants a une erreur, vous pouvez annuler (annuler) tout comme si rien n'avait été fait.

3

Chaque fois que vous ne l'aimeriez pas si une partie de l'opération peut se terminer et une partie ne fonctionne pas.

5

Si vous exécutez deux instructions ou plus que vous pensez être fonctionnellement atomiques, vous devez les placer dans une transaction.

1

Chaque fois que vous voulez verrouiller votre base de données et potentiellement planter votre application de production, chaque fois que vous voulez vider votre application avec une évolutivité cachée, faites des cauchemars et créez une transaction. Faites-le grand, lent, et mettez une boucle à l'intérieur. Sérieusement, aucune des réponses ci-dessus ne reconnaît le compromis et les problèmes potentiels liés à l'utilisation intensive des transactions. Soyez prudent et considérez le risque/récompense à chaque fois.

Ebay ne les utilise pas du tout. Je suis sûr qu'il y en a beaucoup d'autres.

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

+0

Il était toujours intéressant pour moi de voir des approches sur la façon de remplacer les transactions par d'autres techniques. –

0

Chaque fois que toute opération tombe sous ACID (atomicité , Cohérence, Isolation, Durabilité) critères que vous devez utiliser les transactions

Lire cette article

Questions connexes