【问题标题】:Single Cloud SQL or multiple databases?单个 Cloud SQL 还是多个数据库?
【发布时间】:2014-10-29 05:58:42
【问题描述】:

不知道如何问这个问题,但据我了解,谷歌云 SQL 支持实例的概念,这些实例位于其全球基础设施中……因此我可以将单个数据库分布在世界各地的多个实例中。

我们的应用程序服务于几个地理区域...这些数据实际上并不需要作为一个整体进行汇总,可以相应地单独存储在各个区域的单独数据库中。

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

【问题讨论】:

  • 我不知道 Google Cloud SQL,但我想知道当只使用一个实例时,Google 如何能够传播所需数据靠近用户 (CDN) 的数据... A最大的优势肯定是单个数据库的可维护性......
  • 我不确定......他们定制了 MySQL,所以也许他们内置了跨多个物理位置的扩展,就像你可以在同一个物理集群上跨 2 个或更多 DB 的 JOIN 一样——这是无论如何我都明白......我很可能会离开:)

标签: mysql google-cloud-sql


【解决方案1】:

如果“缩放”是指内存大小,那么您可以从较小的实例(较少的 RAM)开始,然后再升级到更强大的实例(更多的 RAM)。

但是,如果您的意思是每秒执行更多操作,则一个 Cloud SQL 实例可以支持的最大大小和最大操作数有一定的限制。您不能无限扩展一个实例。在内部,一个实例的数据确实存储在多台机器上,但这更多的是与可靠性和耐用性有关,并且不会将吞吐量扩展到一定的限制。

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

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

(Cloud SQL 团队)

【讨论】:

    【解决方案2】:

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

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

    (谷歌云 SQL 团队)

    【讨论】:

    • ooooh...好吧我完全误解了...那么数据库中的缩放是如何工作的?如果我需要扩大规模......并且我不添加实例......云计算比租用更大的服务器更好吗?我认为数据被分片到多个服务器上......我还有一些阅读要做:)
    • 请看下面我的回答(不适合评论)
    • @Rahul:您的回答是否仍然有效,或者在过去 7 年中对此有所改变?
    猜你喜欢
    • 2010-09-06
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多