我正在使用PHP查询我网站上的MySQL数据库。请回答以下问题:
mysql_close()
会怎样?连接将保持打开状态?如果是,那么多少时间?如果没有那么为什么?mysql_close()
与绩效有何关系?我是否应该在每次需要访问数据库时打开一个新连接,或者我应该只保留一个连接并最终关闭它?答案 0 :(得分:10)
我建议在构建阶段打开数据库连接,在整个脚本执行期间重新使用该连接(如果它是基于OO的,为数据库连接分配一个类变量并在期间使用$this->db
整个脚本),并在销毁期间关闭它(或者根本不打算关闭它,因为它将被关闭,即使没有特别声明)。
答案 1 :(得分:2)
来自php.net:
通常不需要使用mysql_close(),因为非持久性打开链接会在脚本执行结束时自动关闭。
性能取决于情况,使用时间,空闲时间等等(例如长时间执行)。在大多数情况下,有一个单例模式,通过它可以有一个打开的连接,并使用该打开句柄进行所有查询。但总而言之,并非如此,因为mysql_connect本身就是一种支持:
如果使用相同的参数对mysql_connect()进行第二次调用,则不会建立新的链接,而是返回已打开的链接的链接标识符。 new_link参数修改了这种行为,并使mysql_connect()始终打开一个新的链接,即使之前使用相同的参数调用了mysql_connect()。
所以基本上,当涉及短版本脚本时,不需要mysql_close。
答案 2 :(得分:1)
与不需要时保持打开的资源使用情况相比,关闭连接的性能损失可以忽略不计。最好在完成连接后立即关闭连接,并在需要时再次打开连接。
答案 3 :(得分:1)
如果使用非持久连接,则当PHP脚本完成执行时,所有打开的MySQL连接都将自动关闭。