Just tried Google Cloud SQL: not impressed...

Google Cloud SQL is fully managed MySQL service in the google cloud. Such managed hosting has a number of advantages. For me it could mean less worries about data, backups, configuration, scaling and updates of the software. In that sense Google's Cloud SQL looks very promising, so tried a very small instance which cost approx 10$ a month. And i tried it as replacement for my own (not tuned) mySql instance running in a docker container on a g1-small (1 vCPU, 1,7 GB RAM) instance backed by 40 GB SSD (not local SSD). But this test disappointed me a little.


First let's take a look on Google Cloud instance prices:

Resource Charge
D0 Database Instance (0.125GB RAM) $0.025 per hour
D1 Database Instance (0.5GB RAM) $0.10 per hour
D2 Database Instance (1GB RAM) $0.19 per hour
D4 Database Instance (2GB RAM) $0.29 per hour
D8 Database Instance (4GB RAM) $0.58 per hour
D16 Database Instance (8GB RAM) $1.16 per hour
D32 Database Instance (16GB RAM) $2.31 per hour
1GB Storage $0.24 per month
I/O $0.10 per Million


I've tested with a D0 which is indeed an entry level instance. But however my own instance running on g1-small  gives me results of select's withing 0,01- 0,04 seconds on index search on a table with approx 200k entries... The same query needs 1,1-0.9! seconds on D0 instance of Google SQL Cloud. What? Why so slow? :( I think this has also to do with latency over the network.

My Cloud SQL instance are living in "Compute engine Zone" and in the european zone where my another instances are located...

Currently I'm paying about 30$ for my g1-small Instance and it runs not only MySQL but also a web workers as well... and MySQL performance stays impressively high. More 0,01 vs. 1 means  100 time less latency... Of course test are raw and maybe, too raw but what to tweak on them if the latency is 100 times worse? Does it make sense?

I would expect that google

  • Lower prices for Cloud SQL (at least entry levels)
  • Lowers network latency between GCE and MySQL Cluster
  • Runs that instances on SSD
  • Provides more benchmarks and comparisons..

What is your experience? How do you run your relational data in the (Google) Cloud?

UPDATE 2017: Cloud SQL second generation

As reminded in the comment, meanwhile (Since 2016?) there is a second generation of Google Cloud SQL, that is much much faster and flexible! Also Cloud SQL instances can be placed near to your GCE Virtual machines. That reduces network latency. With that Google has improved here and Cloud SQL becomes very competitive! In my tests. I saw a minimum of difference. Due to a fact that packages still need to travel over network some queries need 0,01 seconds longer in average on a very similar setup.

With that Cloud SQL second generation becomes very interesting and will try switch to it with my projects soon.