18.5 Où MySQL enregistre les fichiers temporaires

MySQL utilise la variable d'environnement TMPDIR comme chemin d'accès au dossier de fichiers temporaires. Si vous n'avez pas un tel dossier, MySQL utilise par défaut celui du système, c'est à dire généralement ``/tmp'' ou ``/usr/tmp''. Si le dossier de fichier temporaire est trop petit, il vaut mieux le changer vers un autre dossier qui soit suffisamment grand, en modifiant la valeur de safe_mysqld! Vous pouvez aussi utiliser l'option de démarrage --tmpdir.

MySQL crée ses fichiers temporaires en tant que fichiers cachés. Cela garanti que les fichiers ne seront effacés que lorsque mysqld sera arrêté. L'inconvénient de cette méthode est que vous ne pourrez pas repérer le fichier temporaire gigantesque qui remplit votre dossier temporaire !

Lorsque vous utilisez des tris (ORDER BY ou GROUP BY), MySQL utilise généralement un ou deux fichiers temporaires. L'espace disque nécessaire est :

(longueur des données triées + taille de (pointeur de base de donnée))
* nombre de ligne utilisées 
* 2

taille de (pointeur de base de donnée) vaut généralement 4, mais risque d'être plus grand encore, lorsqu'il faudra gérer des tables vraiment grandes.

Pour certaines requêtes SELECT, MySQL crée aussi une table temporaire. Celles ci ne sont pas cachés, et leur noms commence par ``SQL_*''.

ALTER TABLE et OPTIMIZE TABLE crée toutes les deux des tables temporaires, mais dans le dossier d'origine.