SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【MySQL】tmp_table_sizeを増やすときはmax_heap_table_sizeもセットで増やすこと

問題

これどうするといいですか。

Created_tmp_disk_tables
→ 赤文字で警告(phpMyAdminの状態表示では)
→ ステートメント実行中にサーバがディスク上に自動生成した一時テーブル数。Created_tmp_disk_tables の値が大きい場合は tmp_table_size の値を増やしてディスク上ではなくメモリ上に一時テーブルを構築した方がよいかもしれません。

答え

tmp_table_size を増やす。 一緒に max_heap_table_size も増やす。

MySQLの一時テーブルは最初メモリ内のheap テーブルで作成されるが、テーブルのサイズがmax_heap_table_sizeまたはtmp_table_sizeを超えてしまうとディスクを使うMyISAMに変換される。

なるべくメモリ内で完結できるように、対策する。

SET tmp_table_size=64*1024*1024;
SET max_heap_table_size=64*1024*1024;

など。

関連するメモ

コメント