O espaço oculto do MySQL é implementado através da configuração da variável de ambiente TMPDIR. Se TMPDIR não estiver definido, o MySQL usará o valor padrão do sistema, geralmente /tmp, /var/tmp ou /usr/tmp. MySQL usa o valor da variável de ambiente TMPDIR como o nome do caminho do diretório onde os arquivos temporários são salvos. Se TMPDIR não estiver definido, o MySQL usará o valor padrão do sistema, geralmente /tmp, /var/tmp ou /usr/tmp. Se o sistema de arquivos que contém o diretório de arquivos temporários for muito pequeno, você poderá usar a opção "-tmpdir" do mysqld para especificar um diretório no sistema de arquivos com espaço suficiente.
No MySQL 5.1, a opção "-tmpdir" pode ser definida como uma lista de vários caminhos, usados em rodízio. Nas plataformas Unix, os caminhos são separados pelo caractere de dois pontos ":"; nas plataformas Windows, NetWare e OS/2, os caminhos são separados pelo caractere de ponto e vírgula ";". Observe que para distribuir a carga de forma eficaz, esses caminhos devem estar em discos físicos diferentes, e não em partições diferentes do mesmo disco.
Se o servidor MySQL estiver sendo usado como escravo de replicação, "--tmpdir" não deve ser definido para apontar para um diretório em um sistema de arquivos baseado em memória ou um diretório que será limpo quando o host do servidor for reiniciado. Para servidores escravos de replicação, alguns arquivos temporários precisam ser retidos quando a máquina for reiniciada para que as tabelas temporárias possam ser copiadas ou as operações LOAD DATA INFILE possam ser executadas. Se os arquivos no diretório de arquivos temporários forem perdidos quando o servidor for reiniciado, a replicação falhará.
MySQL cria todos os arquivos temporários implicitamente. Desta forma, você pode garantir que todos os arquivos temporários serão deletados quando o mysqld for finalizado. A desvantagem de usar arquivos ocultos é que os grandes arquivos temporários que ocupam o sistema de arquivos não ficam visíveis no mesmo local que o diretório de arquivos temporários.
Ao fazer a classificação (ORDER BY ou GROUP BY), o MySQL geralmente usa 1 ou mais arquivos temporários. O espaço máximo em disco necessário é determinado pela seguinte expressão:
(comprimento do que está classificado + sizeof(ponteiro de linha))
* número de linhas correspondentes
*2
O tamanho do "ponteiro de linha" (ponteiro de linha) geralmente é de 4 bytes, mas no futuro, para tabelas grandes, esse valor poderá ser aumentado.
Para algumas consultas SELECT, o MySQL também cria tabelas SQL temporárias. Elas não são tabelas ocultas e possuem nomes no formato SQL_*.
ALTER TABLE cria uma tabela temporária no mesmo diretório do diretório da tabela original.