トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

MySQLチューニング

MySQLチューニング

[MySQL]
最終更新時間:2010年02月16日 12時56分59秒

MySQLをチューニングしよう!

 まずは情報収集

MySQLの情報を収集してみよう!
mysqladminかmysqlコマンドで"show status"コマンドを打つ

  • mysqladmin
   # mysqladmin extended-status
  • mysqlコマンド
   # mysql
   > show status;

以下みたいな感じのがでますよ。
Variable_name Value
Aborted_clients 7576
Aborted_connects 13
Binlog_cache_disk_use 0
Binlog_cache_use 0
Bytes_received 771435512
Bytes_sent 3146368787
Com_admin_commands 1480889
Com_alter_db 0
Com_alter_table 0
Com_analyze 0

 続いて現在の設定情報

現在の設定を確認してみよう!
mysqladminかmysqlコマンドで"SHOW VARIABLES"を打つ

  • mysqladmin
 # mysqladmin variables
  • mysqlコマンド
 # mysql
 > show variables;

以下みたいな感じででますよ。
Variable_name Value
auto_increment_increment 1
auto_increment_offset 1
automatic_sp_privileges ON
back_log 50
basedir /usr/
bdb_cache_size 8388600
bdb_home /var/lib/mysql/
bdb_log_buffer_size 32768
bdb_logdir
bdb_max_lock 10000
bdb_shared_data OFF
bdb_tmpdir /tmp/
binlog_cache_size 32768
bulk_insert_buffer_size 8388608

パラメータに関して

MySQLの設定では大きく分けてグローバルパラメータとスレッド毎のパラメータに分けることができる。

 グローバルパラメータ

MySQL全体の設定。メモリなどを一気に確保する。

max_connections

  • MySQLクライアントの同時接続最大数
    • デフォルトは100に設定してあるが、実際は障害対応用にroot権限のあるユーザがつなげるように+1して101つなげるようになっている。

現在の接続状況の確認

"extended-status"でMaxとThreadsをgrepする。

  • コマンド
 # mysqladmin extended-status | egrep '{Max|Thred_}'
  • 結果
パラメータ 意味
Max_used_connections 6 これまでに記録された同時接続数の最大値
Threads_cached 0
Threads_connected 19 接現在開いている接続の数
Threads_created 288134 続を処理するために生成されたスレッド数
Threads_running 1 スリープ状態になっていないスレッド数

 スレッド毎のパラメータ

スレッドに関しての設定。
例えば1スレッドに20Mのメモリを使うように設定を割り当てると、30スレッドになったときは60Mのメモリを消費する。

  • 参考

http://www.thinkit.co.jp/free/article/0707/2/2/