我有一个网站,在过去的两年里一直运作良好,但现在该网站有更多的访问者和更多的内容。我正在使用wordpress,由于该内容和访问者,我在一个特定时刻获得了与数据库的多个连接。怎么解决这个问题?
bluehost的帐户被暂停,因为我有这个网站的97个MySQL数据库连接。
此问题的可能解决方案可能是:
访客留言:此时此网站暂无法使用。
如何知道何时超过最大连接数?
答案 0 :(得分:2)
这里有几个选项:
您可以通过seanbreeden的建议实现缓存层,我相信有很多可用的。您的许多博客页面很可能是静态的,因此缓存整个页面的缓存插件肯定会有所帮助。请查看varnish。
如果缓存仍然没有帮助,您可能需要考虑将您的应用程序移动到一个主机,该主机在任何给定时间对连接总数更宽容,甚至可能是虚拟专用服务器,非常便宜,请查看Linode.com
您可以实现一个database singleton来帮助回收数据库连接,这个解决方案更复杂一些,但也有助于减少连接数。
- 编辑 -
看起来您可以获得当前发送查询的“活动”连接:
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