如何控制与MySQL的多个连接?

时间:2012-02-11 21:45:56

标签: php mysql wordpress database-connection

我有一个网站,在过去的两年里一直运作良好,但现在该网站有更多的访问者和更多的内容。我正在使用wordpress,由于该内容和访问者,我在一个特定时刻获得了与数据库的多个连接。怎么解决这个问题?

bluehost的帐户被暂停,因为我有这个网站的97个MySQL数据库连接。

此问题的可能解决方案可能是:

访客留言:此时此网站暂无法使用。

如何知道何时超过最大连接数?

3 个答案:

答案 0 :(得分:2)

这里有几个选项:

  1. 您可以通过seanbreeden的建议实现缓存层,我相信有很多可用的。您的许多博客页面很可能是静态的,因此缓存整个页面的缓存插件肯定会有所帮助。请查看varnish

  2. 如果缓存仍然没有帮助,您可能需要考虑将您的应用程序移动到一个主机,该主机在任何给定时间对连接总数更宽容,甚至可能是虚拟专用服务器,非常便宜,请查看Linode.com

  3. 您可以实现一个database singleton来帮助回收数据库连接,这个解决方案更复杂一些,但也有助于减少连接数。

  4. - 编辑 -

    看起来您可以获得当前发送查询的“活动”连接:

    mysql> SHOW GLOBAL STATUS LIKE 'Threads_connected';
    +-------------------+-------+
    | Variable_name     | Value |
    +-------------------+-------+
    | Threads_connected | 1     |
    +-------------------+-------+
    1 row in set (0.00 sec)    
    

    我不记得确切的代码,但是当引发PDOException并且代码匹配“太多连接”时我们实现了'重试'机制,我们将睡眠查询然后重试$ x金额次。

答案 1 :(得分:1)

找到Wordpress的缓存插件并安装它。缓存将降低数据库的负载。

答案 2 :(得分:1)

有一个简单的解决方案,称为缓存。

您可以在wordpress安装上安装缓存插件,这将减少所需的数据库连接数。

有关wordpress缓存插件的列表和比较,请参阅以下链接:List of cache plugins