LoginSignup
1
0

More than 1 year has passed since last update.

RDSのMySQLでクエリキャッシュを有効化する

Last updated at Posted at 2021-10-20

AWS RDSのMySQLではクエリキャッシュがデフォルトでオフになっています。
当初はてっきりオンなのかと思っていましたがオフのようです。

しばらく前からクエリキャッシュ自体をやめたほうが良いのではという記事を見かけていましたが、RDSでは実際にオフになっているようです。

ただ経験上、一般公開されているWebサーバであればクエリキャッシュはかなり効果的だと思っています。
特にselectの比率が高い場合(90%以上)には有用かと思います。

まずクエリキャッシュの状況確認のため、各種パラメタの調整にも有用なのでphpMyAdminで接続して確認しておきます。

上記記事を参考にphpMyAdminに接続し、「状態>アドバイザ」を進みます。

クエリキャッシュがオフであることが確認できました。

Screen Shot 2021-10-20 at 10.04.21.png

キャッシュの設定

RDSの場合には設定を「パラメタグループ」という項目で設定します。
RDSのコンソールよりパラメタグループを開き新規作成します。

image.png

作成されたらパラメータとRDSインスタンスを関連付けします。
インスタンスの「編集」を開きパラメタグループの指定部分を変更します。

image.png

保存します。

「パラメータ」の「変更」を選択します。

image.png

query_cache_type を1に設定します。1

image.png

パラメタグループのタイプの適用には「Dynamic」と「Static」があります。2

種別 説明
Static (静的) 再起動するまで反映されない。
Dynamic (動的) 再起動なしで反映される。ただし多少のタイムラグがある。

今回は Static ですので設定後にRDSを再起動します。

その他、キャッシュ用に確保されるメモリの容量と、キャッシュされる最大値の設定もしておきます。

設定名
query_cache_type 1
query_cache_size 104857600 (100MB)
query_cache_limit 104857600 (100MB)

image.png

設定が終わったらRDSを再起動してしばらく待ちます。

image.png

image.png

再起動が終わったらphpMyAdminから確認します。

image.png

キャッシュのヒット率が少ない問問題が表示されていますが、これでキャッシュ自体は有効化されていることが確認されました。
再起動直後のためサーバの起動時間が少なく、ヒット率も低くなってしまいます。しばらく起動を続けてヒット率が上がることを確認します。

またいくつかクエリを投げて結果が早いことを確認しておくと良いでしょう。

1
0
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
1
0