接続スレッド毎に確保されるメモリ
このカテゴリの代表的なパラメタはデータのソート時に使うメモリの領域,
コマンドラインでの設定 | -- sort_ |
|
システム変数名 | 変数名 | sort_ |
スコープ | Global, |
|
動的変更 | 可能 | |
設定値 | 型 | 整数型 |
デフォルト | 262144 | |
最小値 | 32768 | |
最大値 | 4294967295 |
|
18446744073709551615 |
ファイルを利用したマージソートが行われるとパフォーマンスの面では不利になります。ファイルを利用したソートが行われている回数はSHOW GLOBAL STATUS文のSort_
MySQLのファイルを使ったソートのアルゴリズムには2種類あります。BLOB型またはTEXT型が含まれたレコードをソートする場合には,
他に接続スレッド毎に設定可能なパラメタは以下の通りです。多くの場合はデフォルトで問題ありませんが,
パラメタ名 | 概要 |
---|---|
join_ |
インデックスを使用しないJOINで利用 |
read_ |
MyISAMのテーブルスキャン時のバッファ |
read_ |
MyISAMのランダムスキャン時のバッファ |
binlog_ |
バイナリログに記録するトランザクションのバッファ |
net_ |
データ送受信のバッファの初期値 |
max_ |
データ送受信のバッファの最大値 |
thread_ |
セッションのメタデータ |
次項で紹介する一時表以外で最大メモリを利用する可能性があるサイズは下記の式で算出できます。
max_used_connections * (
read_buffer_size +
read_rnd_buffer_size +
join_buffer_size +
sort_buffer_size +
binlog_cache_size +
thread_stack +
2 * net_buffer_length
)
一時表作成時に確保されるメモリ
MySQLではユーザがCREATE TEMPORARY TABLE文で明示的に一時表を作成できます。この一時表がMEMORYストレージエンジンを使ってメモリ上に作成されるサイズの上限がmax_
コマンドラインでの設定 | --max_ |
|
システム変数名 | 変数名 | max_ |
スコープ | Global, |
|
動的変更 | 可能 | |
設定値 | 型 | 整数型 |
デフォルト | 16777216 | |
最小値 | 16384 | |
最大値 | 4294967295 |
|
18446744073709551615 |
UNION句を用いたクエリやTEMPTABLEアルゴリズムを用いたビュー,
サーバ全体のパラメタ
MySQLにはSELECT文の結果をキャッシュするクエリキャッシュ機能がありますが,