Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
18
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
18
Help us understand the problem. What are the problem?