GAミント至上主義

Web Monomaniacal Developer.

Google Cloud SQLでクエリーキャッシュを有効化する

Cloud SQL(MySQL)では、デフォルトでクエリ-キャッシュは無効化されており、countを何回たたいても遅いので有効化したかった。

ブラウザ上でフラグの追加をするとなぜか出来ないので、コマンドライン上でやる。

下記コマンドを実行。再起動が必要なので注意と時間が必要。

カンマ区切りで必要なものを同時にすべて指定しないと、指定していないものは消されてしまうので注意。

gcloud beta sql instances patch umicos --database-flags query_cache_type=1,query_cache_size=1073741824,query_cache_limit=33554432

メモリ量の数字は適当。

これで2回目以降は圧倒的に早くなった。

mysql> SELECT count(*) FROM member.member;
+----------+
| count(*) |
+----------+
|  2135809 |
+----------+
1 row in set (0.69 sec)

mysql> SELECT count(*) FROM member.member;
+----------+
| count(*) |
+----------+
|  2135809 |
+----------+
1 row in set (0.04 sec)

mysql> SELECT count(*) FROM member.member;
+----------+
| count(*) |
+----------+
|  2135809 |
+----------+
1 row in set (0.04 sec)

それにしてもCloud SQLは便利だけどちょっと高いなぁ


db-n1-standard-1だと継続利用価格で$0.0878/時だから

$0.0878 * 24 * 30 = $63.216

気軽にポコポコ立てるのはちょっと気になってしまう。

普通にGKEでn1-standard-1*1 + HDD50GBだと月31ドルぐらいだから、Cloud SQLを使うことで倍になる。

Cloud SQL独自の問題ではまることもあるし、拡張性とかいらない社内ツール用とかだったらGKEで立てた方がいいかも。