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

[SOLUCIONADO] Optimización a innoDB o me quedo en MyISAM?

Estas en el tema de Optimización a innoDB o me quedo en MyISAM? en el foro de Mysql en Foros del Web. Hola a todos, Tengo una BD diseñada para recoger información de cuestionarios que se envían a través de un formulario en una web. He estado ...
  #1 (permalink)  
Antiguo 27/10/2015, 04:54
Avatar de majete  
Fecha de Ingreso: noviembre-2007
Mensajes: 96
Antigüedad: 16 años, 5 meses
Puntos: 2
Pregunta Optimización a innoDB o me quedo en MyISAM?

Hola a todos,
Tengo una BD diseñada para recoger información de cuestionarios que se envían a través de un formulario en una web. He estado haciendo pruebas durante unas semanas y todo funciona bien, pero ahora me surgen dudas si merece la pena cambiar el tipo de tablas de MyISAM a INNODB.

Las tablas de mi DB son:

Tabla datos_personales
id(PK), fecha, nombre, apellidos, idcuestionario(INDEX), pregunta1, pregunta2... pregunta10

Código MySQL:
Ver original
  1. +--+-------+----------+------+-----------------+-------------+--+---------------+
  2. | id | fecha | nombre | mail | idcuestionario | pregunta1 |... | pregunta10 |
  3. +--+-------+----------+------+-----------------+-------------+--+---------------+
  4. | 1 | 27/10/2015 | juan carlos | [email protected] | WEB23R ||...| No |
  5. | 2 | 27/10/2015 | pedro | [email protected] | WEBL3R | No |...| No |
  6. +--+-------+----------+------+-----------------+-------------+--+---------------+

Tabla resultados
idcuestionario(PK), idtest(PK), respuesta
(Clave primaria doble, idcuestionario y idtest
Código MySQL:
Ver original
  1. +-------------+
  2. | idcuestionario | idtest | respuesta |
  3. +-------------+
  4. | WEB23R | 1 | 3 |
  5. | WEB23R | 2 | 1 |
  6. | WEB23R | 3 | 2 |
  7. | WEB23R | 4 | 3 |
  8. | WEB23R | 5 | 5 |
  9. | WEBL3R | 1 | 2 |
  10. | WEBL3R | 2 | 3 |
  11. | WEBL3R | 3 | 3 |
  12. | WEBL3R | 4 | 5 |
  13. | WEBL3R | 5 | 1 |
  14. +-------------+

Tengo otras tablas para pintar las preguntas aleatoriamente y para guardar ciertos textos que se mostrarán en los resultados, pero creo que no son relevantes.

La info la envía con dos INSERTS en una misma petición al servidor con "mysqli" (si falla alguno de los dos no los completa). El resultado lo muestra haciendo una consulta SELECT sobre la tabla resultados y filtrando por el idcuestionario para pintar un gráfico en la web.

El uso va a ser de unos 300 cuestionarios en 3 o 4 meses, como mucho, y las transacciones serán 2 INSERTS por 4 SELECTS por cada persona.

Ahora mis dudas: ¿Es necesario que cambie la estructura a innoDB para meterle una FOREIGN KEY al campo idCuestionario de la tabla resultados, para meter luego un CASCADE? Igual es una burrada lo que estoy diciendo, pero no lo veo necesario para este tipo de estructura... todas las pruebas que he realizado han funcionado bien pero igual estoy haciendo una burrada.

Saludos y gracias!
Juan Carlos
  #2 (permalink)  
Antiguo 27/10/2015, 05:10
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Optimización a innoDB o me quedo en MyISAM?

1) Si usas FK, MyISAM no las tiene. Las tienes que manejar programaticamente.
2) Si quieres trabajar con transacciones y ACID, MyISAM no sirve porque no tiene.
__________________
¿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 27/10/2015, 05:23
Avatar de majete  
Fecha de Ingreso: noviembre-2007
Mensajes: 96
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Optimización a innoDB o me quedo en MyISAM?

Sí, sé que para implementarlo debería cambiar la estructura a INNODB, pero, ¿merece la pena para lo que voy a usar la BD?

Gracias!
  #4 (permalink)  
Antiguo 27/10/2015, 05:31
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Optimización a innoDB o me quedo en MyISAM?

No depende del tamaño o del proceso que usa la base. Depende de las necesidades del sistema.
Si tu sistema requiere transacciones y restricción de FK, entonces es necesario usar InnoDB.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 27/10/2015, 06:51
Avatar de majete  
Fecha de Ingreso: noviembre-2007
Mensajes: 96
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Optimización a innoDB o me quedo en MyISAM?

Ok gracias. Pienso que es lo más coherente, enlazar el idcuestionario de la tabla resultados con el idCuestionario de la tabla datos personles con una FK y un CASCADE por si tuviera problemas en los INSERTs y a la hora de eliminar un cuestionario, que elimine también los resultados.

Gracias por la ayuda!
JC

Etiquetas: campo, fecha, innodb, optimización, select, sql, tabla
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 08:10.