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

Respuesta
1

Bueno que el sistema no soporte tantos usuarios conectados, ese es problema de tu servicio de Hosting, puede que estés limitado por la cantidad de visitas o ancho de banda que te entregue tu servicio, recuerda que los servicios son limitados y trata de no hacer tantas conexiones a la Base de Datos porque también perjudica.

1 respuesta más de otro experto

Respuesta
1

El flujo del proceso lo veo bien, para decirte algo diferente pues tendría que conocer tu sistema y modelo.

Pero el problema de latencia no puede ser debido unicamente a sistema de DB, hay muchos factores, como características del server, Sistema operativo, configuración del servidor web. Configuración del servidor mysql.

Una vez valoradas estas variables, entraríamos a ver la estructura de tu db, como son el uso adecuado de indices y relaciones y el uso de los tipo de datos.

Revisa eso primero,

Ha otra variable que puede afectar es si el server es dedidado para ese sistema o tiene as servicios.

Slds

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas