A.4.4 Где MySQL хранит временные файлы
Переменная окружения TMPDIR
содержит полное имя каталога, в котором в
MySQL хранит временные файлы. Если TMPDIR
не установлена, то MySQL
использует каталог, заданный в системе по умолчанию (обычно это `/tmp' или
`/usr/tmp'). Если файловая система, в которой находится каталог временных
файлов, слишком мала, то следует, отредактировав safe_mysqld
, присвоить
TMPDIR
значение, указывающее на каталог в "более просторной" файловой
системе! Временный каталог можно также задавать с помощью опции --tmpdir
к
mysqld
.
Все временные файлы MySQL создает как скрытые; таким образом
гарантируется, что временные файлы будут удалены, если mysqld
умрет.
Недостаток использования скрытых файлов в том, что не будут видны большие
временные файлы, забирающие место в файловой системе, где расположен
каталог временных файлов.
При сортировке (ORDER BY
или GROUP BY
) MySQL обычно использует один или
два временных файла. Максимальный размер требующегося для этого
пространства на диске составляет:
(размер сортируемых данных + sizeof(указатель базы данных))
* количество совпавших записей
* 2
sizeof(указатель базы данных)
обычно равен 4, но со временем для очень больших
таблиц может увеличиться.
Для некоторых запросов SELECT
MySQL также создает временные SQL-таблицы.
Они не скрытые и имеют имена вида `SQL_*'.
ALTER TABLE
создает временную таблицу в одном каталоге с исходной
таблицей.