Ja het is mogelijk. We hebben geen metingen van hoe lang dit duurt, maar je kunt verwachten dat een tijdelijke tabel wat overhead veroorzaakt als je hem maakt, er gegevens in schrijft, ernaar vraagt en hem dan laat vallen. Hoe vaak wordt dit gebeld?
Ook is het algemeen bekend dat de opgeslagen procedures van MySQL behoorlijk inefficiënt zijn. Ze behouden niet de gecompileerde vorm van de procedure, zoals in Oracle en andere RDBMS-merken. Met andere woorden, elke sessie hercompileert elke procedure die het gebruikt de eerste keer dat het wordt aangeroepen.
Ten eerste zou ik willen voorstellen om de temp-tabel te verwijderen. Ontwerp gewoon de geneste procedure om de juiste SQL-query als een tekenreeks te bouwen en retourneer die tekenreeks. Vervolgens voert de buitenste procedure uit dat de query het resultaat is. U zou het maken/verwijderen van de tijdelijke tabel en het invoegen in de tijdelijke tabel moeten kunnen overslaan.
Ten tweede, als ik deze app zou ontwerpen, zie ik geen noodzaak voor een van beide opgeslagen procedures. Ik raad aan om code te schrijven om de juiste SQL-query in uw toepassing te bouwen en die query vervolgens vanuit de toepassing uit te voeren.