Muitas tabelas temporárias podem e serão criadas na memória. Se uma tabela será criada na memória ou no disco é determinada por alguns fatores, como tamanho da tabela, estrutura (possui BLOBs) e mais alguns.
Eu sugiro que você leia sobre TMP_TABLE_SIZE e MAX_HEAP_TABL \ E_SIZE para obter informações sobre como as tabelas temporárias funcionam.
Você pode verificar a saída de
mysql> show status like '%tmp%';
se você estiver realmente criando tabelas em disco. Observe, no entanto, que o arquivo de tabela temporária real será de pouca ou nenhuma ajuda para determinar se há um problema.
Você também pode tentar EXPLICAR sua consulta e ver como ela deve ser executada .