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で立てた方がいいかも。