MySQLのtemp領域について
1月 9, 2010
MySQLで、SQL処理時に作成されるテンポラリファイルについて覚え書き。
・MySQLサーバはメモリ上のテンポラリテーブルが上限を超えた時、ディスク上に
テンポラリファイルを作成し利用する。
※その上限は、tmp_table_sizeまたはmax_heap_table_sizeの小さい方の値。
自分が確認した際は両方16Mだったが。
・テンポラリファイルの格納ディレクトリはmy.cnfのtmpdirとなるが、特に指定しなかった場合
OS上のデフォルトが使用される。(/tmpまたは/usr/tmp)
・temp領域は隠しファイルかつ処理が終わると消えてしまうため、SQL文ボトルネックの特定ができない。
・重いSQL文の発行によりディスク上のtemp領域が圧迫される場合がある。
・作成されるテンポラリファイルのサイズはデータサイズやSQL文に依存するため、
予測することが難しい。
ディスク上の割合としてはデータ領域7割、temp領域3割くらいが妥当、、、だろうか?
Categories: MySQL