C'est possible que la base mysql soit mal optimisée, ce n'est pas ma spécialité.
Voici la requête SQL (j'ai modifié les champs pour cause de NDA ) :
Code:
SELECT SQL_NO_CACHE p.chaton_id, SUM(p.views) total FROM stats_chaton p GROUP BY p.chaton_id ORDER BY SUM(p.views) DESC LIMIT 100
Il y a un index sur chaton_id. Est-ce qu'il faudrait index sur views ? Ou un index sur les deux colonnes ?
Ton utilisation d'Elastic se justifie t-elle seulement par un gain de perf ? Ou utilises-tu vraiment ses capacités d'indexation & recherche ?
La recherche fulltext sera peut-être utilisée dans le futur, et des fonctions d'aggregation comme "date_histogram" seront très utiles.
Aussi, utilises-tu les bons types d'index ?
C'est à dire ?
Tes stats sont-elles à jour ?
Normalement oui, l'import s'est fait à partir d'une replication d'un serveur de prod.
Avez-vous un (vrai, un dur) DBA ?
Non. Mais on a pas de chef de projet non plus, alors tu sais
EDIT :
J'ai essayé la même requête avec un index double sur (chaton_id, views), et les perfs sont les mêmes (~10 minutes).