-
Ruang tersembunyi MySQL diimplementasikan melalui pengaturan variabel lingkungan TMPDIR. Jika TMPDIR tidak disetel, MySQL akan menggunakan nilai default sistem, biasanya /tmp, /var/tmp, atau /usr/tmp. MySQL menggunakan nilai variabel lingkungan TMPDIR sebagai nama jalur direktori tempat file-file sementara disimpan. Jika TMPDIR tidak disetel, MySQL akan menggunakan nilai default sistem, biasanya /tmp, /var/tmp, atau /usr/tmp. Jika sistem file yang berisi direktori file sementara terlalu kecil, Anda dapat menggunakan opsi "-tmpdir" ke mysqld untuk menentukan direktori di sistem file dengan ruang yang cukup.
Di MySQL 5.1, opsi "-tmpdir" dapat diatur ke daftar beberapa jalur, digunakan secara round-robin. Pada platform Unix, jalur dipisahkan dengan karakter titik dua ":"; pada platform Windows, NetWare, dan OS/2, jalur dipisahkan dengan karakter titik koma ";". Perhatikan bahwa untuk mendistribusikan beban secara efektif, jalur ini harus berada pada disk fisik yang berbeda, bukan pada partisi berbeda pada disk yang sama.
Jika server MySQL digunakan sebagai budak replikasi, "--tmpdir" tidak boleh disetel untuk menunjuk ke direktori pada sistem file berbasis memori atau direktori yang akan dihapus ketika host server dimulai ulang. Untuk server budak replikasi, beberapa file sementara perlu disimpan saat mesin dihidupkan ulang sehingga tabel sementara dapat disalin atau operasi LOAD DATA INFILE dapat dilakukan. Jika file di direktori file sementara hilang saat server dimulai ulang, replikasi akan gagal.
MySQL membuat semua file sementara secara implisit. Dengan cara ini, Anda dapat memastikan bahwa semua file sementara akan dihapus ketika mysqld dihentikan. Kerugian menggunakan file tersembunyi adalah file-file sementara berukuran besar yang menempati sistem file tidak terlihat di lokasi yang sama dengan direktori file-file sementara.
Saat melakukan pengurutan (ORDER BY atau GROUP BY), MySQL biasanya menggunakan 1 atau lebih file sementara. Ruang disk maksimum yang diperlukan ditentukan oleh ekspresi berikut:
(panjang dari apa yang diurutkan + ukuran(penunjuk baris))
* jumlah baris yang cocok
*2
Ukuran "penunjuk baris" (row pointer) biasanya 4 byte, tetapi di masa depan, untuk tabel besar, nilai ini dapat ditingkatkan.
Untuk beberapa kueri SELECT, MySQL juga membuat tabel SQL sementara. Tabel tersebut bukan tabel tersembunyi dan memiliki nama dalam bentuk SQL_*.
ALTER TABLE membuat tabel sementara di direktori yang sama dengan direktori tabel asli.