增加了两个共享一个数据库的网站的加载时间

时间:2015-01-12 10:13:48

标签: mysql database remote-access

我们的主要网站远程访问我们在其他域名托管的其他网站的数据库。我的问题是我们的主网站加载页面非常慢,而第二个网站没有遇到我们主网站的问题(数据库托管在我们的第二个网站上)。

为什么我们在主网站上遇到此问题? 可能的原因是什么? 对此可能的解决方案是什么?

编辑: 我们只是将其他域名转移到我们主网站的同一主机上。 也许问题是两个托管之间的数据库身份验证过程。

1 个答案:

答案 0 :(得分:0)

这是一个非常非常广泛的问题 - 我只能提供一般性建议。

我首先要确保慢速网站写得正确。在受控开发环境中运行网站,并使用生产数据库的副本,并使用Apache JMeter等工具对其进行加载;确保它快速"快速"在那种环境中。 "快速"是一个可移动的概念,但我希望看到亚秒响应时间高达数百个并发用户。 如果网站在这种情况下运行缓慢,那么生产将会很慢;找出瓶颈所在,调整,优化等。

如果问题不是这样,我会在连接到同一数据库的其他网站上复制该设置,并同时在两个站点上加载。您可能刚刚达到系统的可扩展性限制,并且您可能会看到与此相关的性能问题 - 如果第一个网站快速响应而第二个网站没有响应,则可能性不大,但您可能会这样做。重新看到死锁或其他并发问题。

如果网站在"完美"基础设施,但不是生产,你需要解决生产中的问题。最好的方法是在生产环境中使用分析器;这可能意味着创建一个不可公开访问的网站副本,并在那里安装分析器。 XDebug非常适合PHP。 分析器将显示应用程序减速的位置;它可以在PHP代码中,它可以在身份验证部分,它可以执行SQL查询。

一旦探查器告诉您问题所在,您可以找出解决方法。

但是,根据经验,在单个网络笼外运行数据库查询是一个糟糕的想法;它不安全,它会将您的数据库查询暴露给任意的互联网性能问题,并且会影响您的带宽分配。它与" www.company.com"意义上的域名没有关系。 - 一个托管环境可以运行多个域 - 但如果您通过公共互联网路由数据库流量,则放弃对性能的任何控制。