おそらくはそれさえも平凡な日々

お手軽InnoDBウォームアップを実現するMySQL::Warmerの話をGotanda.pm #2 でしてきました

発表資料

Gotanda.pm #2 でMySQL::Warmerというモジュールの紹介をしたのですが、それをCPANizeしたのでエントリを書いています。

% cpanm MySQL::Warmer

とすると、mysql-warmupというコマンドがインストールされ以下のようなコマンドを打つとウォームアップクエリがダラっと発行されます。--dry-runもあり、その場合、発行されるクエリが標準出力されます。

% mysql-warmup mydatabase -h db.example.com -u dbuser -p

サービス投入前のDBのデータをメモリに乗っけてやるのに有用でしょう。

ウォームアップ戦略はkazuhoさんのMySQL のウォームアップ (InnoDB編)に基づいていますが一部適当です。突っ込みどころがあれば指摘いただければと思います。

ISUCONでも再起動かかった直後に動かすようにしておくなどすると役に立つでしょう。メモリにデータが乗り切る前提ですが。

ちなみに、MySQL5.6以降にはinnodb_buffer_pool_dump_at_shutdown, innodb_buffer_pool_load_at_startupというものがあり、単純にDBサーバーを再起動するだけであればこれで十分そうです。便利な世の中になってきたものです。

created at
last modified at

2024-07-29T22:16:43+0900

comments powered by Disqus