MySQL utiliza el valor de la variable de entorno
TMPDIR
como la ruta al directorio en el que
almacenar archivos temporales. Si no tiene configurada
TMPDIR
, MySQL utiliza el valor por defecto
del sistema, que normalmente es /tmp
,
/var/tmp
, o /usr/tmp
.
Si el sistema de archivos que contiene su directorio de archivos
temporales es demasiado pequeño, puede utilizar la opción
--tmpdir
de mysqld para
especificar un directorio en un sistema de archivos en el que
tenga suficiente espacio.
Desde MySQL 4.1, la opción --tmpdir
puede
establecerse como una lista de varias rutas que son utilizadas
de manera round-robin. Las rutas deben estar separadas por
caracteres de dos puntos (':
') en Unix, y de
punto y coma (';
') en Windows, NetWare y
OS/2. Nota: Para repartir la
carga de manea efectiva, estas rutas tienen que estar colocadas
en diferentes discos físicos, no en diferentes particiones del
mismo disco.
Si el servidor MySQL actua como un esclavo de replicación, no
debería hacer que --tmpdir
apunte a un
drectorio en un sistema de archivos basada en memoria, o un
directorio que se limpia cuando la máquina se reinicia. Un
esclavo de replicación necesita algunos de sus archivos
temporales para sobrevivir a un reinicio de la máquina de
manera que pueda replicar tablas temporales u operaciones
LOAD DATA INFILE
. Si se pierden archivos del
directorio temporal cuando el servidor reinicia, la replicación
falla.
MySQl crea todos los archivos temporales como archivos ocultos. Esto asegura que los archivos temporales se eliminan si mysqld termina. La desventaja de utilizar archivos ocultos es que usted no podrá ver el gran archivo temporal que llena su sistema de archivos.
Cuando ordena (ORDER BY
o GROUP
BY
), MySQL normalmente utiliza uno o dos archivos
temporales. El espacio máximo de disco requerido se determina
con la siguiente expresión:
(longitud de lo que está siendo ordenado + tamañode(puntero de fila)) * número de filas concordantes * 2
El tamaño del puntero de fila es normalmente de 4 bytes, pero puede crecer en el futuro para tablas realmente grandes.
Para algunas consultas SELECT
, MySQL también
crea tablas SQL temporales. Estas no están ocultas y tienen
nombres del tipo SQL_*
.
ALTER TABLE
crea una tabla temporal en el
mismo directorio que la tabla original.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.