Bonjour,
J'ai actuellement quelques requêtes qui contiennent plus de 8 jointures entre différentes tables permettant par exemple de ressortir tous les utilisateurs actifs, avec leurs données (sur plusieurs tables), qui ne sont pas banni,...
J'ai plusieurs questions :
1) Est-il plus performant de passer par une vue matérialisée rafraichie toutes les 6 heures (par exemple), ce qui va m'éviter au moins 5 jointures? ou bien garder ma requête avec toutes mes jointures (avec recalcule de l'age...) ?
2) S'il est plus performant d'utiliser une VM (vue matérialisée) : Mysql ne gère pas forcement les VM pour le moment, donc je dois créer une table que je rafraichirais toutes les 6 heures (via une vue par exemple). Avez vous une idée de la meilleure méthode pour rafraichir une table?
- Supprimer toutes les données de la table VM puis recopier toutes les données du résultat de la vue?
OU
- Faire la différence entre le résultat de la vue et les données sur la table VM. Dans ce cas comment faire la différence? existe-t-il un moyen pour faire cela??
Le nombre de données est important et je pense que la VM m'aiderait (des données déjà calculées et des jointures en moins pour de la consultation pure... Normalement ça devrait être plus rapide, non?)
Merci par avance pour l'aide que vous pourrez m'apporter.
Partager