elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Transacciones cuando y en que caso usarlas.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Transacciones cuando y en que caso usarlas.  (Leído 1,876 veces)
Hadess_inf
Desesperado
Colaborador
***
Desconectado Desconectado

Mensajes: 2.047


Nueva Vida


Ver Perfil WWW
Transacciones cuando y en que caso usarlas.
« en: 14 Agosto 2009, 21:52 pm »

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 Desconectado

Mensajes: 2.804


Ver Perfil
Re: Transacciones cuando y en que caso usarlas.
« Respuesta #1 en: 17 Agosto 2009, 20:59 pm »

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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Importar referencias Vs. usarlas directamente
.NET (C#, VB.NET, ASP)
Eleкtro 2 1,091 Último mensaje 21 Diciembre 2012, 10:15 am
por Eleкtro
Der Spiegel: La NSA vigila las transacciones bancarias internacionales
Noticias
wolfbcn 0 479 Último mensaje 16 Septiembre 2013, 12:48 pm
por wolfbcn
Vietnam declara ilegales todas las transacciones con Bitcoin
Noticias
wolfbcn 0 500 Último mensaje 28 Febrero 2014, 14:27 pm
por wolfbcn
Transacciones Ayuda
.NET (C#, VB.NET, ASP)
xucunhan 0 780 Último mensaje 8 Enero 2015, 18:34 pm
por xucunhan
setjmp y longjmp ¿Cuándo usarlas?
Programación C/C++
MAFUS 2 584 Último mensaje 26 Abril 2018, 13:59 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines