2010-01-29 22 views
19

Estoy leyendo tutoriales muy detallados sobre cómo usar transacciones con tipos de bases de datos y motores de bases de datos, pero no he encontrado una guía que me enseñe cuándo y por qué debería usarlos.¿Cuándo debería usar transacciones en mis consultas?

sé transacciones se utilizan generalmente para la banca, por lo que cuando se trabaja con datos monetarios, pero puedo imaginar que se utilizan en muchas otras maneras.

Hoy estoy trabajando en una página con varias declaraciones INSERT para una base de datos relacional, y quería saber si este es uno de los casos en que debería usarlas.

puedo obtener una impresión que no sé los casos en que los datos se pueden perder parcialmente (aparte de los errores del codificador), así que siempre me preocupa cuando debería utilizarlas.

¿Alguien puede explicar o dar algún enlace con estas reglas fundamentales?

estoy usando MySQL 5.0.8. ¿Debo usar InnoDB para todas las tablas que necesitan transacciones? Si es así, ¿es InnoDB más lento que el MyISAM común, pero no debería preocuparme por eso?

gracias

Respuesta

15

Básicamente cualquier momento que tenga una unidad de trabajo que es ya sea sensible a los cambios externos o necesita la capacidad de deshacer todos los cambios, si se produce un error o alguna otra razón.

Look here for some excellent answers and their reasons for using them.

+0

gracias por ayuda, también he encontrado alguna tecnica para trabajar con transacciones aquí http://www.kennynet.co.uk/2008/12/02/php-pdo-nested-transactions/ – vitto

7

Además de lo que Nick Craver escribió, que se quiere utilizar una transacción cuando se tiene una serie de escrituras que deban llevarse a cabo de forma atómica; es decir, todos deberían tener éxito o ninguno debería tener éxito.

6

Las transacciones deben ser utilizados cuando existe la posibilidad de que o bien el fracaso para completar la lectura o alguien más, o escribir en el medio de su tarea podría causar daños a los datos. Estos incluyen, pero no se limitan a:

  • lectura de una tabla para su eliminación posterior
  • datos relacionados con la escritura de varias tablas
3

utiliza transacciones cuando se tiene un conjunto de acciones que deben ser atómica (O todos tienen éxito o ninguno tiene éxito). Envolver estas acciones en una transacción le permite deshacer acciones que ya han tenido éxito cuando se encuentra con un error. También asegura que los datos con los que está trabajando son consistentes, ya que los bloqueos se mantendrán hasta que se complete la transacción.

0

En algunos marcos, p. Spring, las transacciones automáticas permiten volver a ejecutar una transacción si falla.

Cuestiones relacionadas