关闭网站中的mysql连接有多重要?为什么?

时间:2010-06-19 17:18:15

标签: php mysql

  

可能重复:
  close mysql connection important?

关闭网站中的mysql连接有多重要?为什么?

7 个答案:

答案 0 :(得分:3)

每个数据库引擎都限制了最大并发连接数。因此,如果不关闭连接,mysql可能会耗尽可用连接(默认max_connections为100)。此外,您持有的每个连接都会占用服务器的资源(内存,要监听的线程,可能是打开的文件句柄)。

<强> CAVEAT

如果打开连接的唯一内容是来自ONE服务器的Web应用程序并且它们使用池连接,则不适用。在这种情况下,您不会冒险打开越来越多的新连接(因为每次您的应用需要一个新连接时,它会选择池中可用的连接);关闭并重新打开池的连接只会浪费资源。

答案 1 :(得分:2)

我不了解其他语言,但php会在脚本执行结束时自动关闭连接。

在一般情况下,您关闭连接,以便sql server不必等待来自网站的更多命令(它将不会收到,因为脚本已完成执行),并且未达到连接配额(如果它有任何)。

答案 2 :(得分:1)

当脚本退出时,PHP会自动关闭连接,所以我通常不会太担心它。

数据库服务器将具有有限数量的同时连接,因此在负载很重的站点上,尽快释放连接可能会有所帮助。

答案 3 :(得分:1)

如果您没有正确关闭连接,可能会遇到麻烦。您可能会收到Too many connections个错误。见here

答案 4 :(得分:0)

像往常一样,这取决于。

会发生什么:

  • 连接可以保持打开状态,您可以用尽最大的打开连接
  • 您的更改未提交

取决于程序语言,中间件,......

答案 5 :(得分:0)

因为可以打开的套接字连接数有限制。

答案 6 :(得分:0)

我不是程序员,但我认为一旦你不需要它就关闭它会更好。比如说,例如,您打开连接,执行查询,由于某种原因,使用该数据需要很长时间。如果你还没有关闭连接(并且程序/脚本也没有结束,所以它没有自动关闭连接 - 如果有这样的机会),将会有一个繁忙的资源,它在MySQL中什么都不做。连接已打开,但您没有使用它,这意味着使用该服务的另一个客户端可能会看到很棒的“错误:无法连接到数据库”消息。 因此,在我看来,最好连接到数据库,收集所需的数据,关闭连接,然后处理数据。这至少会为未来的客户留下一个可用的连接(如果你有高并发性的应用程序,这非常重要)。

然而,这种行为取决于编程语言,但我所知道的只能将数据检索到变量并且它与连接无关,所以我可以关闭它并继续处理数据,同时将连接留给另一个客户端