第6回はMySQLのパラメタチューニング基礎として,
アーキテクチャ再確認
第1回で,
- 接続からSQL実行までの共通部分
- トランザクション管理やデータ永続化,
インデックス管理などストレージエンジン固有部分
に大別されると説明しました。この共通部分もパラメタチューニングの際には2つに分けることができます。
- 接続したクライアントからのSQL文を処理するサーバスレッド
(接続スレッド) が利用するメモリなどのリソース - MySQLサーバ全体で利用されるメモリなどのリソース
設定可能なパラメタについてはリファレンスマニュアルの下記を参照して下さい。
このページでは,
接続スレッド関連のパラメタ
MySQLではクライアントから新しい接続が行われると,
最大接続数
同時に接続できるクライアントの数の最大値は,
コマンドラインでの設定 | --max_ |
|
システム変数名 | 変数名 | max_ |
スコープ | Global | |
動的変更 | 可能 | |
設定値 | 型 | 整数型 |
デフォルト | 151 | |
最小値 | 1 | |
最大値 | 100000 |
最大接続数は通常システムの要件から算出して行きます。システムとして想定される同時接続数を見積もり,
接続が切断されるとMySQLサーバ内の接続スレッドも破棄されます。コネクションプーリング機能を使用していない環境では,
mysql> SELECT * FROM GLOBAL_STATUS > WHERE VARIABLE_NAME = 'Connections' > OR VARIABLE_NAME LIKE 'Threads%'; +-------------------+----------------+ | VARIABLE_NAME | VARIABLE_VALUE | +-------------------+----------------+ | CONNECTIONS | 2910337 | | THREADS_CACHED | 0 | | THREADS_CONNECTED | 122 | | THREADS_CREATED | 2910096 | | THREADS_RUNNING | 45 | +-------------------+----------------+ 5 rows in set (0.02 sec)
上記の例ではこれまでの接続回数CONNECTIONSの値と生成されたスレッド数THREADS_
コマンドラインでの設定 | --thread_ |
|
システム変数名 | 変数名 | thread_ |
スコープ | Global | |
動的変更 | 可能 | |
設定値 | 型 | 整数型 |
デフォルト | -1 |
|
最小値 | 1 | |
最大値 | 16384 |
スレッド毎にメモリを確保するパラメタは,