在最近的一些更改后,网站开始显示max_user_connections
错误,这可能表明MySQL数据库的并发连接尝试次数过多。
我注意到原始程序员实现了一个用于管理数据库连接的“DB”类,似乎只在每个页面的页脚中调用了一个close。我怎么能改善这个呢?我应该为每个要创建的请求创建一个db对象,然后在检索到结果后立即关闭吗?
答案 0 :(得分:2)
我不熟悉PHP,但是尽快关闭DB-Connections总是好的,并且与所使用的编程语言无关。 还尝试尽可能晚地获得新的DB-Connection。
如果你正在进行事务性DML,那么你也应该尽快通过提交来释放锁(但是必要时尽快)。如果交易时间超过必要时间,可能会导致其他交易等待。这些等待事务正在消耗连接,而不是等待。
您的“DB-Class”听起来像是用于处理此类目的的实用程序类。
也看看这个question。
答案 1 :(得分:0)
当脚本结束时,Php已经关闭了conn。
您可能希望提高mysql配置文件中的最大通信限制
同样execpt你的脚本需要很长时间你不会通过在查询后关闭conn什么都不做