Autor
|
Tema: Transacciones cuando y en que caso usarlas. (Leído 2,554 veces)
|
Hadess_inf
Desesperado
Colaborador
Desconectado
Mensajes: 2.048
Nueva Vida
|
Hola a todos, pues estuve informandome sobre transacciones en Mysql y PHP. Y queria preguntar si alguien me puediese decir en que situaciones se usan estas. Casos practicos y demas. Gracias. Edito: Algo como esto.
|
|
« Última modificación: 14 Agosto 2009, 22:25 pm por Hadess_inf »
|
En línea
|
|
|
|
^Tifa^
Desconectado
Mensajes: 2.804
|
Pues las transacciones se utilizan como te especifico esa web, cuando reconozcas que varios usuarios tienen acceso a la misma tabla o tablas de una DB y que dicho usuarios puedan eliminar o actualizar datos. Lo cual puede ocasionar debido al autocommit activado por defecto en MySQL que si usuario A hace un delete de una fila completa por ejemplo y usuario B 2 segundos despues solicita informacion que en esa tabla fue eliminada... no la encuentra y devuelve error, o si usuario A actualiza un registro a cierto valor y usuario B actualiza el mismo registro por otro valor en los segundos siguientes ocurre problemas ya que usuario A estara buscando luego ese valor acorde al registro que este coloco....
Entonces en casos exclusivos como estos, se utiliza el unico motor hazta la fecha transaccional y ACID compatible que tiene MySQL (Pero que realmente pertenece a Oracle) el gran InnoDB. Con InnoDB puedes relacionar una tabla con otra usando llaves foraneas (Asi te evitas tener que crear quien sabe cuantos disipadores (triggers) y controlar algo manualmente cuando puede ser automatico como con el motor InnoDB) con este motor y usando llaves foraneas declaras a una de las tablas como padre y las otras como hijos... de acuerdo a las condiciones que hayas dado a las tablas hijos al relacionar la llave foranea a su padre (ejemplo: On delete cascade o on update cascade etc..) se aplicara el cambio en las tablas padres / hijos a la vez.
Ahora, si tu lo que tienes es un formulario de registro de usuarios, o un libro de visitas, o una web de ventas de articulos o algo asi donde 1 usuario tenga acceso solo a sus datos especificos mas no a modificar lo de otros.. entonces utilizas Myisam (Ya que InnoDB por la funcionalidad ACID que implementa ocupa mas espacio del HD y sus consultas tardan un poco mas en devolver aun pasando tunning de indices... ha mejorado bastante la velocidad en la version de MySQL 5.4 gracias a la mano de billetes que Oracle ha comenzado a ingresar al proyecto MySQL y al funcionamiento de InnoDB en esta...) Si tienes algo de recuerdo digase un foro con datos antiguos que no se actualizan, ni eliminan nada o no insertan lo que sea... puedes guardar esa tabla en un motor Archive que consume un 60% menos de HD que MyIsam y Myisam consume un 50% menos de HD que InnoDB.
InnoDB deberia ser utilizado para casos exclusivos en los que se te presente necesidad de actualizaciones masivas o eliminaciones masivas o que varios usuarios tengan acceso a varios datos y puedan hacer cosas (llamese cambios internos) y tu no desees rompimientos de datos.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Importar referencias Vs. usarlas directamente
.NET (C#, VB.NET, ASP)
|
Eleкtro
|
2
|
2,329
|
21 Diciembre 2012, 10:15 am
por Eleкtro
|
|
|
Der Spiegel: La NSA vigila las transacciones bancarias internacionales
Noticias
|
wolfbcn
|
0
|
1,119
|
16 Septiembre 2013, 12:48 pm
por wolfbcn
|
|
|
Vietnam declara ilegales todas las transacciones con Bitcoin
Noticias
|
wolfbcn
|
0
|
1,575
|
28 Febrero 2014, 14:27 pm
por wolfbcn
|
|
|
Transacciones Ayuda
.NET (C#, VB.NET, ASP)
|
xucunhan
|
0
|
1,732
|
8 Enero 2015, 18:34 pm
por xucunhan
|
|
|
setjmp y longjmp ¿Cuándo usarlas?
Programación C/C++
|
MAFUS
|
2
|
1,704
|
26 Abril 2018, 13:59 pm
por MAFUS
|
|