Espérons que la question est explicite. J'ai lu que les vues matérialisées n'existent pas dans MySQL, mais parfois, je vois parfois quelque chose comme ça dans EXPLAIN
Quelqu'un peut-il effacer cela pour moi? Qu'est-ce que "(matérialisé)" signifie si des vues matérialisées ne sont pas une chose dans MySQL? Utilisation de MySQL Server 5.6, Workbench 6.3.
Au monde extérieur (si je ne me trompe pas), une "vue matérialisée" est une table permanente qui est automatiquement insérée/mise à jour en fonction des données qui circulent dans une autre table.
Dans MySQL, il a une signification plutôt limitée. Il fait référence à certaines tables "dérivées" (par exemple, FROM ( SELECT ... )
). L'optimiseur a plusieurs façons de traiter de telles constructions.
FROM (SELECT...) JOIN (SELECT...)
), l'optimiseur devrait réexécuter à plusieurs reprises toutes sauf la première table dérivée.Il n'y a essentiellement rien que vous, le programmeur, puisse faire pour contrôler cette version de "vue matérialisée". (Eh bien, réécrivez pour éviter le besoin.)
5.7 et 8.0 ont encore plus d'améliorations de performance. Mais toujours pas de "vue matérialisée" car le monde extérieur le sait.
Explorer le format de sortie Explique
- <matérialiser> ( fragment de requête)
La matérialisation des sous-requêtes est utilisée.