Les requêtes MySQL préparées offrent-elles un avantage de performance pour les requêtes une fois par session?

StackOverflow https://stackoverflow.com/questions/322319

Question

Selon la documentation, une requête préparée offre un avantage significatif en termes de performances si vous exécutez une requête plusieurs fois, car la surcharge du serveur MySQL lors de l'analyse syntaxique de la requête ne se produit qu'une seule fois. Je me demande ce qu'ils entendent exactement par "plusieurs fois". là-bas.

Ie., disons que vous avez une page Web qui exécute une requête une fois. Maintenant, disons que cette page est appelée 50 fois par seconde. Est-il plus logique, du point de vue des performances, de préparer () la requête (ce qui nécessite deux allers-retours pour le serveur de base de données; un pour préparer la requête, l'autre pour l'exécuter) ou simplement pour envoyer la requête normalement (ce qui ne nécessite qu'un aller-retour) ? MySQL et / ou le pilote PHP mysqli sont-ils assez intelligents pour comprendre quand une requête était prepare () 'dans une invocation précédente?

Était-ce utile?

La solution

Non. PHP est un " rien partagé " architecture, de sorte que chaque ressource associée à une requête (une page) est rejetée à la fin de cette requête. Les requêtes préparées ne sont pas disponibles pour les connexions ultérieures à la base de données.

Vous pouvez tirer parti d'une requête préparée lorsque vous la préparez et l'exécutez plusieurs fois au cours de la même requête PHP .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top