单云SQL还是多个数据库?

时间:2014-10-28 15:26:13

标签: mysql google-cloud-sql

不确定如何提出这个问题,但据我所知,谷歌云SQL支持实例的想法,这些实例位于其全球基础架构中......所以我可以在世界各地的多个实例中分布一个数据库。

我的应用程序提供了一些地理区域......数据并不需要整体聚合,因此可以单独存储在区域中的不同数据库中。

从一个数据库/多个实例服务所有区域是否有意义?或者我应该将每个区域分隔到它自己的数据库中并以旧时尚方式托管数据?

2 个答案:

答案 0 :(得分:5)

如果通过“缩放”表示内存大小,则可以从较小的实例(较少的RAM)开始,然后再向上移动到更强大的实例(更多RAM)。

但是如果你的意思是每秒更多的操作,那么一个Cloud SQL实例可以支持一定的最大操作数和最大操作数。你无法无限扩展一个实例。在内部,一个实例的数据确实存储在多台机器上,但这与可靠性和耐用性更相关,并且它不会将吞吐量扩展到某个限制之外。

如果您确实需要比一个Cloud SQL实例提供的吞吐量更多的吞吐量,并且您确实需要基于SQL的存储,则必须使用多个实例(即完全独立的数据库),但您的应用必须管理它们。

请注意,云的优势不仅仅是可扩展性。为您管理Cloud SQL实例(例如,故障转移,备份等都会得到处理)。您可以根据使用情况获得结算。

(Cloud SQL团队)

答案 1 :(得分:1)

首先,关于整体架构:"实例"在Google Cloud中,SQL本质上是一个MySQL数据库服务器。没有"一个数据库/多个实例"的概念。想想您的Cloud SQL"实例"作为数据库本身。在任何时间点,来自Cloud SQL实例的数据都从一个位置提供 - 即您的实例恰好在那时运行。现在,如果您的应用程序在Google App Engine或Google Compute Engine中运行,那么您可以配置您的Cloud SQL实例,使其位于您的应用附近。

关于一个数据库与多个数据库的问题:如果您的数据库在逻辑上是一个数据库并由一个逻辑应用程序提供服务,那么您应该有一个Cloud SQL实例。 (再次,将一个Cloud SQL实例视为一个数据库)。如果您创建多个Cloud SQL实例,它们将彼此孤立,您的应用程序将必须执行将它们作为完全不同的数据库进行管理的所有复杂逻辑。

(Google Cloud SQL小组)