海上缓慢的SQL连接

时间:2012-04-27 15:04:54

标签: reverse-proxy

这就是我们所知道的: 英国的Web服务器+英国的SQL SERVER 因为我们无法对数据库进行实时复制,所以我们为美国提出了这个解决方案: 美国的Web服务器+与英国的SQL SERVER交谈。

我们看到一个奇怪的结果,我们得到了一个缓慢的页面连接,从美国到英国代理更慢,我们不明白为什么。

逻辑告诉我们,sql数据小于代理(页面中所有数据)。

你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果您希望SQL数据库远离服务器,则需要认真考虑减少使用的顺序查询的数量。

如果您的往返ping是0.2ms到MySQL服务器,并且您进行查询,则等待往返通信。如果按顺序进行5次往返查询(也就是说,等待第一次查询在开始第二次查询之前结束),则需要0.2ms * 5 = 1ms。

增加1ms的额外延迟并不是什么大问题。你可能不会注意到。

如果您的数据库服务器位于同一数据中心之外,则数据库的延迟可能至少为20毫秒。连续五个查询将花费100毫秒。仍然没那么糟糕。

如果您位于数据中心的海洋对面,您可能会说100-200ms的延迟。然后,五个连续的查询将花费一整秒的时间来返回。

如果您在整个后端使用20-30个查询,则加载页面可能需要10秒以上。


解决方案?

  1. 将数据库服务器放在与Web服务器相同的数据中心中。除非您可以并行执行所有查询,或者将系统缩减为每页一个查询,否则在英国使用Web服务器实际上要比在海洋中分离Web服务器和数据库服务器更快。
  2. 大大减少查询次数。
  3. 高速缓存。