--big-tables
提供:MySQL Practice Wiki
| ファイル | my.cnf, my.ini |
| セクション | [mysqld] |
| データ型 | 真偽値 |
| デフォルト値 | 0 |
| 値の範囲 | 0, 1 |
| 効果 | 記事を参照 |
| 効果の有効範囲 | セッション |
| 使用頻度 | 低 |
説明
BIG_TABLESというセッション変数をコントロールするためのオプションである。--big-tablesオプションを指定すると、BIG_TABLESのデフォルト値が1になる。BIG_TABLESが1の場合、結果セットの処理(ソートやJOINなど)で使用される一時テーブルがMEMORYではなくMyISAMで作成されるようになる。BIG_TABLES=0の場合、一時テーブルはMEMORYストレージエンジンを用いて作成されるが、MEMORYテーブルの上限サイズは比較的小さい場合が多い。そのため、MEMORYテーブルが上限サイズに達すると、一時テーブルは自動的にMyISAMテーブルに変換される。しかしながら、この処理は時間がかかるため、結果セットが大きいと予め分かっている場合には、 BIG_TABLES=1を設定すると性能が向上する。ただし、これはセッション変数を以下のように変更することにより行うのが一般的で、--big-tablesオプションを用いてデフォルト値を変更することはあまり行われない。
mysql> SET BIG_TABLES=1;
レポートを作成するような処理の場合には、MEMORYストレージエンジンの上限サイズをとても大きくするか、BIG_TABLES変数を操作すると良いだろう。