メモリーテーブルは高速で便利ですが、サイズの制限をしておかないとメモリーを使いすぎて
しまうので、「set global max_heap_table_size = xxxxxx」でメモリーの上限を設定しておく。
反対に作成しようとしているテーブルが大きい場合は大きめに設定しておく。

mysql> select @@global.max_heap_table_size;
+------------------------------+
| @@global.max_heap_table_size |
+------------------------------+
| 16777216 |
+------------------------------+
1 row in set (0.00 sec)

mysql> set GLOBAL max_heap_table_size = 1024 * 1024;
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> select @@global.max_heap_table_size;
+------------------------------+
| @@global.max_heap_table_size |
+------------------------------+
| 1048576 |
+------------------------------+
1 row in set (0.00 sec)

mysql>

max_heap

set globalでの変更は、DBの再起動で設定が消えてしまうので、オプションファイル(my.cnf)に書いておく。

メモ:
その他の動的変数はここ 4.2.4.2. 動的システム変数

One Thought on “MEMORYテーブルが大きくなり過ぎないように…

  1. Pingback: L2TP » The table ‘tmp’ is full

Post Navigation