Niedawno natknąłem się na podobny problem, w którym CREATE TEMPORARY TABLE kosztował znaczne koszty z powodu ciągłego ponownego używania. Skorzystałem również z rozwiązania, które opisuje Barranka (utwórz raz i przytnij po zakończeniu lub przed ponownym użyciem).
Aby jeszcze bardziej zwiększyć wydajność wykorzystałem tabele InnoDB, które zostały utworzone na dysku RAM (ramfs). Daje to wszystkie korzyści silnika pamięci masowej InnoDB przy bardzo niskich kosztach we/wy. Jest to lepsze rozwiązanie niż korzystanie z silnika pamięci masowej MEMORY, który według wsparcia Oracle jest dostępny tylko dla starszych aplikacji i od jakiegoś czasu nie był ulepszany ani rozszerzany.