MariaDB(MySQL)設定のチューニング
5年前にも書いたけど、調べ直したときの覚書。
環境: MariaDB 10.0.13
参考サイト
- Server System Variables - MariaDB Knowledge Base
- MySQL :: MySQL 5.5 Reference Manual :: 5.1.4 Server System Variables
- DSAS開発者の部屋:5分でできる、MySQLのメモリ関係のチューニング!
変数名 | デフォルト | 説明 |
max_connections | 151 | 最大同時接続数。 Node.jsから非同期で処理する場合は一気に増加するので多めに設定。 |
thread_pool_size | CPUの数 | 同時実行するスレッドグループの数。 デフォルトのままでいい。 参考:Thread pool in MariaDB 5.5 - MariaDB Knowledge Base |
thread_cache_size | 0 | キャッシュするスレッドの数。 "pool-of-threads"の場合無視される。 |
table_open_cache | 400 | 全てのスレッドでオープンするテーブルの数。 多すぎても少なすぎてもダメらしい。 参考:Optimizing table_open_cache - MariaDB Knowledge Base 参考:MySQL :: MySQL 5.1 リファレンスマニュアル :: 6.4.8 MySQL でのテーブルのオープンとクローズの方法 |
key_buffer_size | 134217728 | MyISAMのインデックスをキャッシュするメモリ容量。全てのスレッドで共通。 実メモリの25%が妥当らしい。 参考:Optimizing key_buffer_size - MariaDB Knowledge Base |
sort_buffer_size | 2M | ソートするときにスレッドごとに使うメモリ容量。大きすぎるとメモリが足りなくなるので注意。 |
read_rnd_buffer_size | 262144 | ソート後にレコードを読み込むときに使用するメモリ容量。これもスレッドごと。 |
join_buffer_size | 128KB | インデックスを使わないテーブル結合に使われるメモリ容量。 |
read_buffer_size | 128KB | スレッドごとのシーケンシャルスキャンに使うメモリ容量。 参考:第2回 一番の基本,シーケンシャルスキャン:データベースと秋の空・RDBMS掌握術!<br />~PostgreSQLから学ぶDBMSとの付き合い方~|gihyo.jp … 技術評論社 |
query_cache_size | 0 | 実行結果をキャッシュするメモリ容量。 |
query_cache_limit | 1MB | このサイズ以上の実行結果はキャッシュしない。 |
今の設定値を確認したい場合はSQLを実行する。
# mysql -p -u root
> show variables like '%size';
設定した値が妥当かどうか判断してくれるツールがある。
ダウンロードして実行
# cd /opt/software/
# wget http://mysqltuner.pl/ -O mysqltuner.pl
# perl mysqltuner.pl
< Related Posts >