LoginSignup
20
18

More than 5 years have passed since last update.

MySQL5.6新機能を利用しないデータの暖気

Posted at

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では実行できなそう)。

20
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
18