MariaDB(MySQL)設定のチューニング

mariadb_settings5年前にも書いたけど、調べ直したときの覚書。

環境: MariaDB 10.0.13

 

参考サイト

 

変数名 デフォルト 説明
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 >