Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/10/2015, 04:54
Avatar de majete
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