MySQL使用環境變量TMPDIR的值作為保存臨時文件的目錄的路徑名如果未設置TMPDIRMySQL將使用系統的默認值通常為/tmp/var/tmp或/usr/tmp如果包含臨時文件目錄的文件系統過小可對mysqld使用—tmpdir選項在具有足夠空間的文件系統內指定個目錄
在MySQL 中—tmpdir選項可被設置為數個路徑的列表以循環方式使用在Unix平台上路徑用冒號字符:隔開在WindowsNetWare和OS/平台上路徑用分號字符;隔開注意為了有效分布負載這些路徑應位於不同的物理磁盤上而不是位於相同磁盤的不同分區中
如果MySQL服務器正作為復制從服務器使用不應將tmpdir設置為指向基於內存的文件系統的目錄或當服務器主機重啟時將清空的目錄對於復制從服務器需要在機器重啟時仍保留一些臨時文件以便能夠復制臨時表或執行LOAD DATA INFILE操作如果在服務器重啟時丟失了臨時文件目錄下的文件復制將失敗
MySQL會以隱含方式創建所有的臨時文件這樣就能確保中止mysqld時會刪除所有臨時文件使用隱含文件的缺點在於在臨時文件目錄所在的位置中看不到占用了文件系統的大臨時文件
進行排序時(ORDER BY或GROUP BY)MySQL通常會使用個或多個臨時文件所需的最大磁盤空間由下述表達式決定
(length of what is sorted + sizeof(row pointer))
* number of matched rows
*
row pointer(行指針)的大小通常是字節
但在以後對於大的表該值可能會增加
對於某些SELECT查詢MySQL還會創建臨時SQL表它們不是隱含表並具有SQL_*形式的名稱
ALTER TABLE會在與原始表目錄相同的目錄下創建臨時表
From:http://tw.wingwit.com/Article/program/MySQL/201405/30867.html