Search code examples
google-cloud-platformgoogle-cloud-sqlgoogle-cloud-spannerspring-cloud-gcp

What's the difference between Google Cloud Spanner and Cloud SQL?


I am novice in GCP stack so I am so confused about several listed technologies for storing data:

https://cloud.google.com/products/databases

Specifically, I'm interested in the differences between Cloud Spanner and Cloud SQL.

From my current view I don't see any significant difference between Cloud SQL(with postgres under the hood) and Cloud Spanner. I found that it has a bit different syntax but it doesn't answer when I should prefer this technology to spring cloud sql.

Could you please explain it ?

P.S.

I consider spring cloud SQL as a traditional database with automatic replication and horizontal scalability managed by google.


Solution

  • There is not a big difference between them in terms on what they do (storing data in tables). The difference is how they handle the data in a small and big scale

    Cloud Spanner is used when you need to handle massive amounts of data with an elevated level of consistency and with a big amount of data handling (+100,000 reads/write per second). Spanner gives much better scalability and better SLOs.

    On the other hand, Spanner is also much more expensive than Cloud SQL.

    If you just want to store some data of your customer in a cheap way but still don't want to face server configuration Cloud SQL is the right choice.

    If you are planning to create a big product or if you want to be ready for a huge increase in users for your application (viral games/applications) Spanner is the right product.

    You can find detailed information about Cloud Spanner in this official paper