What's the difference between Google Cloud Spanner and Cloud SQL?
There are a lot of similarities between these offerings in that they both support strong consistency and SQL syntax for querying the database. However, the two products are at different levels of maturity (Cloud SQL is Generally Available while Cloud Spanner is in Beta as of this writing), and Cloud SQL has greater compatibility with existing SQL client code (e.g. offering a proxy that enables interaction from existing SQL clients and libraries built for MySQL) while Cloud Spanner provides a larger feature set (such as time bound queries that allow one to perform faster reads if you are okay seeing stale data) but, because of this, also assumes interaction through the Cloud Spanner API and not a traditional SQL library or client.
The main difference is that Spanner is horizontally scalable whereas Cloud SQL is not.
For Cloud SQL you can select machine type, type of hard disk and size, region and zone. Maximal data throughput through network is 2000 MB/s. You are limited with having everything on one server, so that’s basically your limit.
Efficiency of Spanner depends on the other hand on number of nodes which are used. with every node throughput increases so you can scale horizontally by just adding nodes (just change one digit in settings, that’s all :)). Each node has 2 TB of storage and possibility of 10000 QPS of reads or 2000 QPS of writes.
Of course speed also depends on database schema and modeling.
regarding pricing, Spanner is more expensive, it costs 0.9$ per hour (~650$ per month). With CloudSQL it depends on instance type so it’s possible to adjust based on the needs.