##MySQLのデータの暖気
システム再起動直後のDBは、データがメモリ上にのっていないために、そのままサービスに投入するとディスクがささる可能性がある。
MySQL5.6からInnoDBのデータを暖気できる機能が実装されたが、それ以前のバージョンのMySQLを利用している場合の暖気方法について簡単にまとめる。
ポイントとしては、InnoDBのprimary keyとテーブルデータの暖気には、SELECT COUNT(*)を使うイメージが強いが、secondary keyのwarmupまで考える場合ではそれだけだと不十分であるというところになると思う。なお下記の暖気方法では、BLOB型やTEXT型には対応していない。
##InnoDB
###テーブルのデータとprimary keyのwarmup
SELECT COUNT(*) FROM [テーブル名]
###secondary keyのwarmup
下記の疑似コードのような感じでsecondary key毎に暖気する。
for [キー] in [キーのリスト]
do
SELECT COUNT(*) FROM [テーブル名] FORCE INDEX([キー])
done
##MyISAM
データディレクトリをcatする。MyISAMのデータ部分については、あくまでOSのページキャッシュの機能を用いて暖気する形になる(RDSのようなマネージドなDBでは実行できなそう)。