2009-07-07 17 views

Respuesta

8

Se debe utilizar una transacción cuando necesite que un conjunto de cambios se procese completamente para considerar que la operación es completa y válida. En otras palabras, si solo una parte se ejecuta con éxito, ¿dará como resultado datos incompletos o no válidos almacenados en su base de datos?

Por ejemplo, si tiene una inserción seguida de una actualización, ¿qué sucede si la inserción tiene éxito y la actualización falla? Si eso daría como resultado datos incompletos (en este caso, un registro huérfano), debe envolver las dos declaraciones en una transacción para que se completen como un "conjunto".

+2

"se utilizará cuando necesite que se procesen un conjunto de cambios" Creo que el segundo "necesita" es innecesario. –

4

si tiene más de una declaración de modificación de datos para ejecutar una tarea, todo debe estar dentro de una transacción.

De esta manera, si la primera es exitosa, pero cualquiera de las siguientes tiene un error, puede deshacer (deshacer) todo como si nunca se hubiera hecho nada.

3

Siempre que no te guste, si parte de la operación puede completarse y parte de ella no.

5

Si está ejecutando dos o más declaraciones que espera que sean funcionalmente atómicas, debe envolverlas en una transacción.

1

Cada vez que quiera bloquear su base de datos y potencialmente bloquear su aplicación de producción, siempre que quiera ensuciar su aplicación con pesadillas ocultas de escalabilidad, siga adelante y cree una transacción. Hazlo grande, lento y coloca un lazo dentro.

En serio, ninguna de las respuestas anteriores reconoce la disyuntiva y los posibles problemas que conlleva el uso intensivo de las transacciones. Tenga cuidado, y considere el riesgo/recompensa cada vez.

Ebay no los usa en absoluto. Estoy seguro de que hay muchos otros.

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

+0

Siempre fue interesante para mí ver enfoques sobre cómo reemplazar transacciones con otras técnicas. –

0

Siempre que cualquier operación corresponda a ACID (atomicidad , consistencia, Aislamiento, Durabilidad) criterios que debe utilizar transacciones

Lea este article

Cuestiones relacionadas