Estoy tratando de obtener el recuento de las encuestas que deben tomarse que se almacena en seotc
, y el recuento de las encuestas completadas, almacenadas seotcresults_v2
. La tabla seotc
contiene casi 100k registros, y la tabla seotcresults_v2
contiene aproximadamente la mitad de eso. ¿Cómo puedo acelerar esta consulta?Acelere esta declaración de MySQL
SELECT
DISTINCT seotcresults_v2.Clock,
COUNT(seotc.Id) AS Surveys,
COUNT(seotcresults_v2.Id) AS Complete
FROM seotc
JOIN seotcresults_v2 ON seotcresults_v2.Clock = seotc.Clock
WHERE seotcresults_v2.CampusID = 40
AND seotcresults_v2.Term = 201011
ORDER BY seotc.Clock
ACTUALIZACIÓN:
Gracias por todas las respuestas. La estructura de la tabla (mínimamente) es la siguiente:
seotc: | Id | Reloj | CampusID | Término |
seotcresults_v2: | Id | Reloj | CampusID | Término | Q1 | Q2 | ... etc
Id
es el índice de auto-incrementales en cada mesa para las encuestas y resultados de la encuesta
Dónde Clock
'es un ID de un instructor y pueden encontrarse varias veces en la tabla seotc
y seotcresults_v2
porque tienen múltiples clases y múltiples encuestas completadas para cada clase por múltiples términos. Básicamente, estoy tratando de determinar la tasa de respuesta en función del número de encuestas para un instructor en un campus determinado en un plazo determinado en comparación con la cantidad de resultados publicados con esos mismos parámetros. ¿Eso ayuda?
Intentaré ejecutar EXPLAIN también en breve.
Es posible que desee agregar la estructura de la tabla a su pregunta. –
¿Qué índices ha definido en estas tablas? –
También ejecute EXPLAIN en la consulta y pegue la salida. –