Tak, to możliwe. Nie mamy pomiarów tego, jak długo to trwa, ale można oczekiwać, że tabela tymczasowa spowoduje pewne obciążenie podczas jej tworzenia, zapisywania w niej danych, wysyłania zapytań, a następnie usuwania. Jak często jest to wywoływane?
Ponadto, procedury składowane MySQL są ogólnie znane jako dość nieefektywne. Nie zachowują skompilowanej formy procedury, tak jak w przypadku Oracle i innych marek RDBMS. Innymi słowy, każda sesja ponownie kompiluje każdą procedurę, której używa przy pierwszym wywołaniu.
Najpierw sugerowałbym wyeliminowanie tabeli tymczasowej. Po prostu zaprojektuj zagnieżdżoną procedurę, aby zbudować prawidłowe zapytanie SQL jako ciąg i zwróć ten ciąg. Następnie zewnętrzna procedura wykonuje zapytanie jest jego wynikiem. Powinieneś być w stanie pominąć tworzenie/upuszczanie tabeli tymczasowej i wstawianie do tabeli tymczasowej.
Po drugie, gdybym projektował tę aplikację, nie widzę potrzeby stosowania żadnej z procedur składowanych. Zalecam napisanie kodu, aby zbudować właściwe zapytanie SQL w Twojej aplikacji, a następnie wykonanie tego zapytania z aplikacji.