Optimización de consultas
Estimado experto
He realizado un sistema de generación de exámenes aleatorios basado en un banco de preguntas existente en una base de datos MySQL, se trabajó con 240 estudiantes conectados de manera simultanea pero se tuvo problemas de gran latencia al generar el examen personalizado para cada estudiante.
La forma de trabajo del sistema es el siguiente:
1. Ingreso del estudiante al sistema
2. Consulta a la tabla de categorías para saber la cantidad de preguntas por cada categoría con el siguiente tipo de consulta SELECT * FROM cat_x_area WHERE área = xxx
3. Luego por cada categoría (foreach) se realiza una nueva consulta a la tabla de preguntas para obtener la cantidad de preguntas requeridas, recibiendo los ID's de las preguntas con la consulta SELECT id FROM questions WHERE cat = xx AND dificultad = xx
3. Se realiza la obtención del texto de la pregunta y la respuesta por cada categoría (foreach) realizando una nueva consulta a la base mediante SELECT id,texto,respuesta FROM questions WHERE id IN (lista de ID's obtenidos en los procesos anteriores)
4. Se realiza la presentación del examen en un formulario
Quisiera recibir un consejo para mejorar el rendimiento del sistema y en un futuro soportar mayor cantidad de estudiantes sin tener problemas de latencia