J'essaie d'obtenir le nombre d'enquêtes qui doivent être prises qui est stocké dans seotc
, et le nombre de sondages complétés, stockés seotcresults_v2
. La table seotc
contient près de 100 000 enregistrements et la table seotcresults_v2
contient environ la moitié de ce nombre. Comment puis-je accélérer cette requête?Accélérer cette déclaration 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
MISE À JOUR:
Merci pour toutes les réponses. La structure de la table (au minimum) est la suivante:
seotc: | Id | Horloge | CampusID | Terme
seotcresults_v2: | Id | Horloge | CampusID | Terme Q1 | Q2 | ... etc
Id
est l'indice auto-incrémentée dans chaque tableau pour les enquêtes et les résultats du sondage
Où Clock
'est un identifiant pour un instructeur et peut être trouvé à plusieurs reprises dans le tableau seotc
et seotcresults_v2
car ils ont plusieurs classes et plusieurs enquêtes complétées pour chaque classe pour plusieurs termes. Essentiellement, j'essaie de déterminer le taux de réponse en fonction du nombre de sondages pour un instructeur dans un campus donné dans un terme donné par rapport au nombre de résultats affichés pour ces mêmes paramètres. Est ce que ça aide?
Je vais tenter d'exécuter le EXPLAIN aussi rapidement.
Vous voudrez peut-être ajouter la structure de la table à votre question. –
Quels index avez-vous définis sur ces tables? –
Veuillez également exécuter EXPLAIN sur la requête et collez la sortie. –