前回は、コネクションとスレッドの調整を書いたけど、
おまけで、スレッド毎のバッファの調整も聞いたのでメモ。
my.conf
sort_buffer_size
ORDER BYやGROUP BYのときに使われるメモリ上の領域らしい。
ソートするカラムに対して、インデックスがついていない場合に利用される。
ソート用のメモリを超える場合、ディスクを使用。
この値を調整する際に、指針とする値が、
Sort_merge_Passes
上記の値は、テンポラリファイルを利用したソートの回数(マージソートのパス数)を表示。
つまり、メモリでは収まっていないと言うこと。
Sort_merge_Passesの確認方法
show global status like 'Sort_merge_passes';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Sort_merge_passes | 0 |
+-------------------+-------+
ゼロが望ましいそうです。
ただ、こちらの値はデフォルト2Mで、特に問題が起きたことは無いそうです。
調子に乗って、大きすぎると、メモリの割り当てのオーバーヘッドになるので注意。
まぁ、使うケースとしては、集計などのバッチ処理を行う場合に、
事前に調整しておいて実行して、終わったら戻すといった感じで使うのがいいみたい。