Est une base de données MySQL vue plus rapide que la normale requête?
J'ai une requête complexe à l'aide de plusieurs jointures (8 en fait). Je pensais à le simplifier en vue. Après un peu de recherche, je peux voir les avantages de la simplicité et de la sécurité. Mais je ne vois pas de mention de la vitesse.
Faire des vues comme des déclarations préparées à l'avance, où la requête est pré-compilé? Est-il notable gain de performance de l'aide de points de vue?
- Certaines bases de données pré-compiler le point de vue, mais je ne crois pas que MySQL. Vous pouvez regarder cette question: stackoverflow.com/questions/1021319/how-to-optimize-mysql-views
- Contrairement aux réponses - En mon expérience, de points de vue avec beaucoup de jointures directement requête s'exécute plus rapidement.
Vous devez vous connecter pour publier un commentaire.
Pas, d'un point de vue est tout simplement un stockées texte de la requête. Vous pouvez appliquer
WHERE
etORDER
contre elle, le plan d'exécution sera calculé avec ces clauses pris en considération.Vue est fondamentalement un stockée sous-requête. Il n'y a pratiquement pas de différence entre:
et
à l'exception de la vue est un peu plus portable, que vous n'avez pas à écrire la requête sous-jacente à chaque fois que vous voulez travailler avec toutes les données, il renvoie.
Il peut parfois aider, mais c'est pas la panacée. J'ai vu une vue d'aider la performance, mais j'ai aussi vu le blesser. Une vue de la force de matérialisation, ce qui peut parfois vous donner un meilleur chemin d'accès si MySQL n'est pas de choisir un bon pour vous.