Ja det är möjligt. Vi har inga mätningar på hur lång tid det här tar, men man kan förvänta sig att en temptabell orsakar lite overhead när du skapar den, skriver data i den, frågar efter den och sedan släpper den. Hur ofta kallas detta?
Dessutom är MySQL:s lagrade procedurer allmänt kända för att vara ganska ineffektiva. De behåller inte den sammanställda formen av proceduren, som de gör i Oracle och andra RDBMS-märken. Med andra ord, varje session kompilerar om varje procedur som den använder första gången den anropas.
Först skulle jag föreslå att ta bort temptabellen. Designa bara den kapslade proceduren för att bygga rätt SQL-fråga som en sträng och returnera den strängen. Sedan exekverar den yttre proceduren frågan är dess resultat. Du bör kunna hoppa över skapa/släppa temptabellen och infogningen i temptabellen.
För det andra, om jag designade den här appen, ser jag inget behov av någon av de lagrade procedurerna. Jag skulle rekommendera att du skriver kod för att skapa rätt SQL-fråga i din applikation, och sedan kör den frågan från applikationen.