Je n'ai pas tout lu, mais juste une remarque :
L'index suivant
UNIQUE KEY `Search` (`date`,`siteId`,`userId`,`countryId`)
n'est probablement pas adapté pour un filtre du type :
WHERE date >= "2014-01-01" AND siteId IN (25,45,67) AND countryId = 2 AND userId IN (55,223,795)
La date devrait plutôt être placée en dernier (et ne pas être nommé date...)
Il est quand même nécessaire de rajouter certains index, sans faire une combinaison exhaustive.
Par ailleurs, mysql n'est pas très adapté pour le besoin car
- pas de fonction analytique pour les besoins des requêtes complexes qui donc sont encore plus complexes en mysql.
- pas d'index bitmap
- pas de vues matérialisées
L'absence de fonctionnalité a un coup !
Postgresql a effectivement plus de fonctionnalité utile pour votre besoin, mariadb c'est juste mysql donc inutile pour la problématique.
Partager