MySQL utilise la valeur de la variable d'environnement
TMPDIR
comme chemin du dossier où stocker
les fichiers temporaires. Si vous n'avez pas de variable
TMPDIR
, MySQL utilise alors le dossier
système par défaut, qui est normalement
/tmp
, /var/tmp
ou
/usr/tmp
. Si le support qui contient votre
dossier temporaire est trop petit, modifiez le script
safe_mysqld
pour configurer
TMPDIR
, et lui faire désigner un dossier où
vous aurez la place. Vous pouvez aussi configurer ce dossier
avec l'option --tmpdir
de
mysqld
.
Depuis MySQL 4.1, l'option --tmpdir
peut
prendre une liste de plusieurs chemins, qui seront utilisés
alternativement. Les chemins doivent être séparés par des
deux-points (‘:
’) sous Unix et
par des points-virgules (‘;
’)
sous Windows, NetWare et OS/2.
Note : pour répartir la
charge entre plusieurs disques physiques, les chemins doivent
être dirigés vers des disques physiques
disctincts, et non pas des partitions différentes du même
disque.
Si le serveur MySQL est configuré comme un esclave de
réplication, vous ne devez pas faire pointer le chemin de
--tmpdir
vers un dossier en mémoire vive, ou
vers un dossier qui sera vidé au démarrage du serveur. Un
esclave de réplication doit être capable de retrouver ses
fichiers temporaires lors du redémarrage du serveur, de
manière à pouvoir reprendre la réplication des tables
temporaires ou des opérations de LOAD DATA
INFILE
. Si les fichiers du dossier temporaire sont
perdus après redémarrage, la réplication échouera.
MySQL crée tous les fichiers temporaires sous forme de fichier
cachés. Cela garantit que les fichiers temporaires seront
supprimés lorsque mysqld
est terminé.
L'inconvénient d'utiliser les fichiers cachés est que vous ne
verrez pas que le dossier temporaire est gros, et qu'ils
risquent de remplir votre dossier temporaire.
Lors des tris avec les clauses ORDER BY
ou
GROUP BY
, MySQL utilise normalement deux
dossiers temporaires. L'espace disque maximal nécessaire est :
(taille de ce qui est trié + taille du pointeur de base) * nombre de lignes trouvées * 2
taille du pointeur de base
vaut
généralement 4, mais peut croître dans le futur pour les
tables réellement grandes.
Pour certaines requêtes SELECT
, MySQL crée
aussi des tables temporaires SQL. Elles ne sont pas cachées, et
portent un nom du type SQL_*
.
ALTER TABLE
crée une table temporaire dans
le même dossier que la table originale.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.