MySQL
        は、テンポラリファイルを格納するディレクトリのパス名として、TMPDIR
        環境変数の値を使用します。TMPDIR
        を設定していない場合、MySQL
        はシステムのデフォルトを使用します。システムのデフォルトは、通常
        /tmp または
        /usr/tmp
        です。テンポラリファイルディレクトリを含むファイルシステムが非常に小さい場合、mysqld_safe
        を編集して、領域が十分あるファイルシステムのディレクトリを指すように
        TMPDIR
        を設定する必要があります。mysqld
        に対して --tmpdir
        オプションを使用しても、テンポラリディレクトリを設定できます。
      
        MySQL
        はすべてのテンポラリファイルを隠しファイルとして作成します。これによって、mysqld
        が強制終了されるとテンポラリファイルは確実に削除されます。隠しファイル使用の不利な点は、テンポラリファイルディレクトリのあるファイルシステムをいっぱいにするような大きなテンポラリファイルが見えないことです。
      
        ソート時(ORDER BY または
        GROUP BY により)、MySQL
        は通常、1つまたは2つのテンポラリファイルを使用します。必要な最大ディスク領域は、以下のとおりです。
      
(ソートされたものの長さ + sizeof(データベースポインタ)) * マッチするレコードの数 * 2
        sizeof(データベースポインタ)
        は、通常 4
        ですが、大きいテーブルに対応するため、将来的に増える可能性があります。
      
        SELECT クエリの中には、MySQL が
        テンポラリ SQL
        テーブルを作成するものがあります。これらは隠しファイルではなく、SQL_*
        という名前になります。
      
        ALTER TABLE
        では、元のテーブルと同じディレクトリにテンポラリテーブルが作成されます。
      
        MySQL 4.1 以降を使用している場合、コロン
        :(Windows の場合はセミコロン
        ;)で区切られたパスのリストを
        --tmpdir
        に設定することにより、複数の物理ディスク間で負荷を分散させることができます。この物理ディスクは、ラウンドロビン方式で使用されます。
        注意:
        これらのパスは、同一ディスクの複数のパーティションではなく、異なる物理ディスクである必要があります。
      
        tmpdir
        を設定してメモリベースのファイルシステムを指定することは可能ですが、MySQL
        サーバがスレーブの場合はできません。スレーブの場合、コンピュータの再起動用に、いくつかのテンポラリファイルが必要(テンポラリテーブルまたは
        LOAD DATA INFILE
        のレプリケーションため)です。そのため、コンピュータの再起動で消去されるメモリベースの
        tmpdir
        は適しません。ディスクベースの
        tmpdir が必要です。
      
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.

