Google Cloud SQLのクエリーキャッシュを使ってWordPressを高速化

こんにちは、masakiです。

Google Cloud SQL(MySQL)で、クエリーキャッシュを設定してWordPressを高速化します。

基本的にinsertがやたら多いシステムでは、クエリーキャッシュはパフォーマンスが上がるどころか悪化します。

しかし、WordPressはほとんどが参照クエリーのみで、クエリーをやたらめったら送るので、クエリーのキャッシュを設定して高速化していきます。

普通のサーバーだとmysqlの設定ファイルであるmy.cnfに書き込めばよいのですが、Google Could SQLだとコマンドで設定します。

$ gcloud sql instances patch [インスタンス名] --database-flags query_cache_type=1,query_cache_size=1073741824,query_cache_limit=33554432

上記コマンドの例だと、クエリーキャッシュに1Gbytesのメモリーを割り当てています。サーバーのメモリーの状況によって、ご自身の環境に合わせて増減させてください。

コマンドを打つと、以下のように設定を変更してリスタートするけどよい?と聞いてきますのでyes。

WARNING: This patch modifies database flag values, which may require
your instance to be restarted. Check the list of supported flags -
https://cloud.google.com/sql/docs/mysql/flags - to see if your
instance will be restarted when this patch is submitted.

Do you want to continue (Y/n)?  y

しばらくするとCloud SQLのインスタンスが再起動されます。

接続してみましょう。

 $ gcloud sql connect [インスタンス名] --user=root --quiet

接続するとMySQLのプロンプトに入りますので、以下のコマンド打ってキャッシュが有効になっているか確認しましょう。

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 27
Server version: 5.7.14-google-log (Google)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> SHOW VARIABLES LIKE '%query_cache_%';
+------------------------------+------------+
| Variable_name                | Value      |
+------------------------------+------------+
| query_cache_limit            | 33554432   |
| query_cache_min_res_unit     | 4096       |
| query_cache_size             | 1073741824 |
| query_cache_type             | ON         |
| query_cache_wlock_invalidate | OFF        |
+------------------------------+------------+
5 rows in set (0.03 sec)

MySQL [(none)]> show global status like "%QCache%";
+-------------------------+------------+
| Variable_name           | Value      |
+-------------------------+------------+
| Qcache_free_blocks      | 74         |
| Qcache_free_memory      | 1073439072 |
| Qcache_hits             | 4120       |
| Qcache_inserts          | 697        |
| Qcache_lowmem_prunes    | 0          |
| Qcache_not_cached       | 431        |
| Qcache_queries_in_cache | 145        |
| Qcache_total_blocks     | 377        |
+-------------------------+------------+
8 rows in set (0.04 sec)

正常にクエリーキャッシュが生成されて、クエリーがキャッシュにhitしているのが分かります。

非常に簡単です。WordPressの表示が遅い場合は是非試してみましょう。

WordPressはGoogle Cloud Platformで運用すべき理由

2019年8月5日
エンジニアがおすすめするプログラミングスクール3社

スポンサーリンク