Mysql
 sql >> Base de données >  >> RDS >> Mysql

Le SP imbriqué MySql peut-il être un goulot d'étranglement ?

Oui c'est possible. Nous n'avons pas de mesures du temps que cela prend, mais on peut s'attendre à ce qu'une table temporaire entraîne une surcharge lorsque vous la créez, y écrivez des données, l'interrogez, puis la supprimez. À quelle fréquence est-ce appelé ?

De plus, les procédures stockées de MySQL sont généralement connues pour être assez inefficaces. Ils ne conservent pas la forme compilée de la procédure, comme ils le font dans Oracle et d'autres marques de SGBDR. En d'autres termes, chaque session recompile chaque procédure qu'elle utilise la première fois qu'elle est appelée.

Tout d'abord, je suggérerais d'éliminer la table temporaire. Concevez simplement la procédure imbriquée pour créer la bonne requête SQL sous forme de chaîne et renvoyez cette chaîne. Ensuite, la procédure externe exécute la requête est son résultat. Vous devriez pouvoir ignorer la création/la suppression de la table temporaire et l'insertion dans la table temporaire.

Deuxièmement, si je concevais cette application, je ne vois aucun besoin d'aucune des procédures stockées. Je vous recommande d'écrire du code pour créer la bonne requête SQL dans votre application, puis d'exécuter simplement cette requête à partir de l'application.