Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/05/2010, 08:34
Avatar de gnzsoloyo
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, cuando es obligatorio?

Cita:
Pero como es entonces que un sistema de foros tan famoso como Icy Phoenix, que debe estar preparado para una gran sobrecarga en la BD esta armado con MyISAM?
Imaginate que si es tan famoso, sus programadores y administradores no son precisamente aprendices en las necesidades de una base de datos basada en MyISAM...
¿No te parece?
Cita:
Yo ya tengo mis tablas creadas con MyISAM y ahora tengo miedo de que se rompa la BD. Mi pregunta es básicamente, que tanto riesgo de que eso ocurra hay?
Cuales serian los errores que podria dejarnos en la BD una tabla MyISAM.
Podria ocurrir que inserte mal un valor? que no lo inserte? que devuelva mal una consulta?
Cuando ocurriria algo de eso?
La base no se va a "romper", en todo caso te van a quedar datos corruptos por inconsistencia, si no manejas bien la programación.
Ten en cuenta que las inserciones/actualizaciones no te van a devolver errores porque las claves ingresadas en una tabla no existan en la tabla donde se supone se deben verificar, si esa verificación no la haces correctamente en el programa.
Esa es una parte del problema: Como no existen FK en MyISAM, el motor no verifica si ingresan o no datos válidos; eso es tu problema, no del DBMS.

¿Puede que ingrese mal los datos?
Si, porque solamente tiene que poder entrar en la columna (tipo de columna), y no verifica contra nada.

¿Que no lo inserte?
No, si cumple las restricciones del tipo de columna.

¿Que devuelva mal una consulta?
Si metes basura, sacarás basura.

En esencia, el problema de MyISAM es que requiere que todos los procesos de verificación de las relaciones entre tablas se programen en la aplicación, ya que no tiene recursos propios para hacerlo. Lo que quiere decir que los datos que se ingresan manualmente y que deberían ser PK en una tabla cualquiera, antes de ir a su destino deben verificarse en la tabla donde deberían existir...
¿Se entiende?

Eso para empezar.

¿Si te sirven las InnoDB o las MyISAM?
Eso es una cuestión que tiene que ver con el diseño de la base en sí. Sin ver el diagrama de Entidad - Relación y/o el Modelo de Datos graficado, no te lo puedo decir con certeza.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)