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

No Responses so far | Have Your Say!

Comments are closed.