【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;
など。
コメント