Ver Mensaje Individual
  #6 (permalink)  
Antiguo 19/05/2011, 12:24
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: 16 años, 5 meses
Puntos: 2658
Respuesta: No me funciona restricción

Tu pregunta no irrita, simplemente te quería aclarar que no era una pregunta fácil de responder porque las variables a considerar eran muchas.
En tu caso la conveniencia de tablas InnoDB o MyISAM dependerá de algunos factores, donde la cantidad de inserciones es clave.
Una base con muchas altas pero pocas bajas, o donde la carga de datos sea masiva, y especialmente en web, puede sacar provecho de las tablas MyISAM. Por eso los sitios web las usan mucho. Pero si tienes procesos donde afectes a varias tablas al mismo tiempo, y ese proceso debe funcionar como un todo integrado, consistente, las MyISAM no sirven porque sólo el motor InnoDB tiene transacciones, que son las que pueden controlar ese nivel de consistencia.
Algunos detalles importantes:
- MySQL no exige que todas las tablas de una base sean del mismo tipo, por lo que pueden coexistir tablas InnoDB con MyISAM. Lo que si requiere es que todo caso de FK sea entre tablas InnoDB. No las puedes mezclar.
- Si usas tablas MyISAM, y quieres mantener la relación, deberás conservar las relaciones y la consistencia de datos por medio de programación, esto es, deberás hacer que los procesos de tu aplicación sean ordenados, consistentes y trazables.
- Si usas tablas InnoDB debes tener en cuenta que el orden de ingreso de los datos a las tablas relacionadas es importante. No puedes poner un dato en una tabla con FK que no exista en su tabla referida. MySQL no dejará que lo hagas. Carga los datos en forma ordenada.
- Las búsquedas genéricas del tipo LIKE funcionan con cualquiera de las dos. Las de MATCH() ... AGAINST sólo con ídices FULLTEXT y estos sólo se pueden usar en MyISAM.
- Si usas transacciones, trata de hacerlo dentro de un sólo script. Si la conexión se cae, todo el proceso se descarta porque la desconexión sin COMMIT previo genera un ROLLBACK implícito.

...hay más cosas, pero por ahora es suficiente, creo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)