Spec-Zone .ru
спецификации, руководства, описания, API

C.5.4.4. Где MySQL Stores Temporary Files

На Unix MySQL использует значение TMPDIR переменная окружения как путь каталога, в котором можно хранить временные файлы. Если TMPDIR не устанавливается, MySQL использует системное значение по умолчанию, которое обычно является /tmp, /var/tmp, или /usr/tmp.

На Windows MySQL регистрируется в порядке значения TMPDIR, TEMP, и TMP переменные окружения. Для первого, который, как находят, был установлен, MySQL использует это и не проверяет тех, которые остаются. Если ни один из TMPDIR, TEMP, или TMP устанавливаются, MySQL использует системное значение по умолчанию Windows, которое обычно является C:\windows\temp\.

Если файловая система, содержащая Ваш временный каталог файла, является слишком небольшой, можно использовать --tmpdir опция к mysqld, чтобы определить каталог в файловой системе, где у Вас есть достаточно пространства.

В MySQL 5.7, --tmpdir опция может быть установлена в список нескольких путей, которые используются круговым способом. Пути должны быть разделены символами двоеточия (":") на Unix и символах точки с запятой (";") на Windows.

Отметить

Чтобы распространить загрузку эффективно, эти пути должны быть расположены на различных физических дисках, не различных разделах того же самого диска.

Если сервер MySQL действует как ведомое устройство репликации, недопустимо установить --tmpdir указать на каталог на основанной на памяти файловой системе или к каталогу, который очищается, когда узел сервера перезапускает. Ведомое устройство репликации нуждается в некоторых из своих временных файлов, чтобы пережить машинный перезапуск так, чтобы оно могло тиражировать временные таблицы или LOAD DATA INFILE операции. Если файлы во временном каталоге файла теряются, когда сервер перезапускает, сбои репликации.

Расположения MySQL, что временные файлы удаляются, если mysqld завершается. На платформах, которые поддерживают это (такие как Unix), это делается, расцепляя файл после открытия этого. Недостаток этого - то, что имя не появляется в списках каталога, и Вы не видите большой временный файл, который заполняет файловую систему, в которой располагается временный каталог файла. (В таких случаях ls +L1 может быть полезным в идентификации больших файлов, связанных с mysqld.)

Сортируя (ORDER BY или GROUP BY), MySQL обычно использует один или два временных файла. Максимальное требуемое дисковое пространство определяется следующим выражением:

(length of what is sorted + sizeof(row pointer))* number of matched rows* 2

Размер указателя строки обычно - четыре байта, но может вырасти в будущем для действительно больших таблиц.

Для некоторых SELECT запросы, MySQL также составляет временные таблицы SQL. Они не скрываются и имеют имена формы SQL_*.

ALTER TABLE создает временную таблицу в том же самом каталоге как исходная таблица.