【问题标题】:How important is MySQL location geographically?MySQL 位置在地理位置上有多重要?
【发布时间】:2017-06-28 12:13:19
【问题描述】:

我了解到 StackExchange 使用两个数据中心来容纳他们所有的服务器,这两个数据中心都在美国。我在爱尔兰,所以我确信美国服务器对我来说没问题,但是如果所有数据库服务器都在美国,那么 StackExchange 如何为澳大利亚的用户快速加载?

我想问一下,这是否意味着对于 MySQL 之类的服务而言,在地理位置上靠近服务器对于保持页面加载速度没有那么大的问题?

我知道他们使用 CDN 来加快页面加载时间,并且他们可能会缓存某些页面以加快速度,但即使我遇到一些非常古老、不受欢迎的问题,我也不会注意到任何减速。

【问题讨论】:

  • 相对于地球表面不同地点之间的距离,电子的速度非常非常快。光子甚至更快(在光纤电缆中)。据我所知,StackExchange 不使用 MySQL。
  • 我认为他们使用 MSSQL 我认为所有 SQL 产品的速度都差不多。 MSSQL 会不会更快?
  • 除了数据库服务器之外,还有很多其他因素会影响最终用户的页面加载速度。

标签: mysql cdn scaling


【解决方案1】:

数据库服务器相对于查看器的位置并不是重要的性能因素。作为网站访问者,您不是在与数据库对话——您是在与 Web 应用程序服务器对话,而后者正在与数据库对话。

通常更重要的是数据库服务器相对于应用程序服务器的位置,因为许多应用程序需要多次查询,因此需要多次往返于数据库才能呈现单个页面,而这些往返会增加呈现页面所需的时间。当数据库在物理上接近应用层时,该时间可以忽略不计。

用一般的网络术语来说,在像 SE 这样管理良好的网站中,所有支持资产都在 CDN 中,与您相关的唯一延迟是一个大型 HTTP 请求/响应所需的传输时间呈现页面内容。运输时间不可忽略,因为光速仍然是有限的,所以即使在最好的路线上,到偏远地区的往返时间也很容易在 200-300 毫秒范围内......但如果你只需要穿越它一次,您仍然有可观的响应时间。

使用大量 ajax 来获取附加数据的网站在距离如此遥远的网络服务器上运行不佳。如果需要这样的设计,您需要地理上分布的 Web 服务器,具有相邻的数据库副本,以及 DNS 中的地理路由,以将只读 ajax 请求发送到最近的 Web 服务器,该服务器可以查询其本地副本,获得快速响应,并快速回复。

我曾经将 MySQL 服务器(相对于应用程序服务器)从大约 0.5 毫秒的距离移动到了大约 25 毫秒的距离。网站上的页面加载时间(已经不是最佳的)从 2 秒增加到 10 秒。原因?多年来,该应用程序经历了多次迭代,并向数据库发出了许多不必要的请求……如果我没记错的话,即使是最简单的页面也需要 13 个不同的查询,其中大部分是获取实际未使用的数据(就像获取您的分数,即使对于实际上没有显示您的分数的页面)。只要应用程序和数据库非常非常接近,这种低效率就不会被发现。但是,同样,这是关于 Web 服务器和数据库之间的距离,而不是数据库和浏览器之间的距离。

Stack Exchange 有两个数据中心,但最后检查其中一个只是热备用/故障转移站点。主站点在正常操作下完成所有工作。而且,SE 使用 MSSQL,但这也无关紧要,因为这里起作用的基本现象是物理定律。

【讨论】:

  • 感谢您提供如此深入的回答!你说数据库应该靠近应用程序服务器,如果我有很多应用程序服务器设计为靠近用户但只有一个数据库服务器,我不仅会遇到数据库离查询对象太远的问题是吗?
  • 如果您希望应用服务器靠近用户,您需要与应用服务器相邻的数据库只读副本,以便尽可能多的数据库流量可以使用这些副本。在 MySQL 中,副本打开与主服务器的连接,并将其保持打开状态。主服务器在发生更改时向副本提供连续的更改流,副本将这些更改应用到其本地数据集。该协议不需要第 7 层确认,因此复制延迟(最好的情况下,具有适当容量的硬件和稳定的连接)可以小于两台服务器之间的往返时间。
【解决方案2】:

也许 StackExchange 使用地理上分布在世界不同地区的多个数据库副本(DB 从站)。这解释了即使是不受欢迎的 SQL 请求也能实现高速工作。

在澳大利亚和美国西海岸之间,也可以通过水下电缆进行直接通信,从而确保高速运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-03
    • 2014-01-18
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多