'达到最大用户连接数限制' - 如何确保连接已建立?

'达到最大用户连接数限制' - 如何确保连接已建立?

问题描述:

最近,我开始获取SQL max用户连接限制达到的错误。我联系了我的主机,并被通知我的限制是一次10个并发连接。但是SQL是我网站的核心,所以我不想错误地让代码继续尝试连接,直到查询成功。'达到最大用户连接数限制' - 如何确保连接已建立?

如何在PHP中执行此操作?

编辑:这里是东西,我让AJAX调用来检索数据客户端。每个AJAX调用需要大约400毫秒才能完成,从而打开一个新的MySQL连接。有10个或更多的用户,我遇到了问题。

+0

你正在接近这个错误。关闭较旧的连接或使用一个连接来完成所有工作。 – 2012-01-28 20:00:16

+0

你有没有尝试过任何东西? – 2012-01-28 20:00:36

+0

http://*.com/questions/39753/connection-pooling-in-php – sherif 2012-01-28 20:01:56

为什么不尝试使用持久连接呢?

如果您需要需要数据库连接为了使您的页面正常工作,您应该阻止,直到连接建立。最好通过建立10个连接池并在所有页面实例*享这些连接来实现。

这减少摆在首位连接的成本,因为更少的连接建立和连接拆除通话的好处制成。

你没有说你正在使用哪个数据库引擎,但mysql_pconnect就是这样的一个PHP调用。

编辑:阅读其他的答案后,这是值得注意的是,你不应该使用每个页面加载多个连接。我假设你已经只使用每页加载一个,但你有超过10个同时进行的PHP实例。

+0

我使用INNODB作为我的存储引擎。我如何去建立一个连接池? – user1137403 2012-01-28 20:11:05

+0

@ user1137403 http://php.net/mysql_pconnect – Borealid 2012-01-28 20:12:35

+0

所以我有6个不同的PHP文件被不同的AJAX调用来获取不同的数据。那么,按照你的建议,我想打开10个持续连接并共享它们?我如何“分享”? – user1137403 2012-01-28 20:14:43

对于初学者来说,有着密切的联系,当你完成他们,让他们不留打开,直到脚本结束。

更好的解决方案,虽然是只使用一个连接来完成所有的工作。

使用PDO,并根据需要传递PDO对象。一个连接,多个操作。