J'ai quelques problèmes pour trouver un indice de travailler pour cette requête (générée par MicroStrategy):Index MySQL Optimisation pour Microstrategy
SELECT a11.method method, sum(a11.call_count) CALLCOUNT
FROM call_facts a11
JOIN dimension a12 ON (a11.user_id = a12.user_id)
JOIN service a13 ON (a11.service_id = a13.service_id)
WHERE (a12.is_fraudulent = 0
AND a12.is_test_account = 0
AND a13.in_directory in ('yes')
AND a11.date > '2011-10-01')
GROUP BY a11.method;
J'ai actuellement des indices sur a12.is_fraudulent et a12.is_test_account. Expliquer montre une fusion d'index utilisant ces deux. A11 et A13 sont tous les deux bons avec des indices. Quel index puis-je créer pour accélérer un peu cette requête? A titre de référence, a12 a environ 8 M entrées, 7,4 correspondent à is_test_account = 0 and is_fraudulent = 0
cas.
Pourquoi vous avez a13.in_directory dans (« oui ») au lieu de a13.in_directory = « oui »? –
La requête est générée par certains logiciels utilisés par mon équipe Business Analytics. Je ne peux pas modifier la requête, donc j'essaie d'optimiser les indices autant que possible pour augmenter les performances. En ce moment, cette requête prend environ 2 heures à courir. – Jericon
Merci pour l'explication. –