Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

InnoDB y START TRANSACTION

Estas en el tema de InnoDB y START TRANSACTION en el foro de Mysql en Foros del Web. Hola Entiendo su funcionamiento; entiendo que almacen las consultas, hasta cuando aparece COMMIT y las ejecuta de golpe si ve ROLLBACK las cancela He escuchado ...
  #1 (permalink)  
Antiguo 08/01/2011, 23:05
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 9 meses
Puntos: 10
InnoDB y START TRANSACTION

Hola

Entiendo su funcionamiento; entiendo que almacen las consultas, hasta cuando aparece COMMIT y las ejecuta de golpe si ve ROLLBACK las cancela

He escuchado que usar esto, tiene ventajas en la perfomance, pero tiene alguna desventaja? y realmente tiene esta mejora en performance?

Saludos, y gracias de antemano
  #2 (permalink)  
Antiguo 09/01/2011, 06:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: InnoDB y START TRANSACTION

El tema de las transacciones es bastante complejo, y entre otras cosas se usa para evitar catástrofes cuando existe concurrencia de usuarios y de consultas. La performance en este punto es prácticamente irrelevante, porque la razón de usar transacciones es precisamente evitar problemas mayores.
Para citar un ejemplo, ¿qué prefieres: una consulta lenta, o perder 1.000 millones en tu moneda por una operación que no debió hacerse, y que podría evitarse usando transacciones?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 09/01/2011, 08:49
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: InnoDB y START TRANSACTION

Como dice gnzsoloyo.. el tema es complejo. Hay que usarlas con mucho cuidado.

Por ejemplo, si por programación no les das un uso correcto y las dejas abiertas (sin cancelación ni confirmación), tu buffer de conexiones se va a llenar y va a traerte bastantes problemas con la consistencia de los datos.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 09/01/2011, 11:05
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 9 meses
Puntos: 10
Respuesta: InnoDB y START TRANSACTION

Y que me recomiendan mas poner el SET AUTOCOMMIT=1 o mejor una consulta que sea asi:

$resulta=mysqli_multi_query($this->ini_sql(),"START TRANSACTION; ".$sql." COMMIT;");

O ambas?

Última edición por August; 09/01/2011 a las 11:21
  #5 (permalink)  
Antiguo 09/01/2011, 12:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: InnoDB y START TRANSACTION

El tema no pasa por allí. No es tan liviano o simple como cambiar una variable o declararla.
La pregunta es: ¿Tienes BIEN CLARO en qué consisten las transacciones, para qué sirven, en qué casos se las debe usar y cómo se las diseña?
A partir de allí, lo que debes hacer es plantearnos el caso específico, para saber proponerte cómo, cuando y por qué usarla.
Tantos peros es porque al usar transacciones, te estás metiendo en un tema muy avanzado de la administración de bases de datos, que no tomamos a la ligera, no sólo porque afecta la performance final, sino porque afecta mucho la interacción de los usuarios y las configuraciones de los servidores-.
Transacciones no es un tema cualquiera.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: innodb, start, transacciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:23.