Php 我真的需要做mysql_close()吗

Php 我真的需要做mysql_close()吗,php,mysql,Php,Mysql,我真的需要做mysql_close()吗?为什么 是否有一个触发器在mysql\u connect之后关闭链接,即使我没有执行mysql\u close?根据: 通常不需要使用mysql_close(),因为非持久打开的链接会在脚本执行结束时自动关闭 就个人而言,我总是喜欢确保我学究式地关闭我打开的任何东西,但这不是必需的。手册: 通常不需要使用mysql_close(),因为非持久打开的链接会在脚本执行结束时自动关闭 所以,不,不是真的。在尝试可能会消耗大量资源的操作之前释放资源是有帮助的,但

我真的需要做mysql_close()吗?为什么

是否有一个触发器在mysql\u connect之后关闭链接,即使我没有执行mysql\u close?

根据:

通常不需要使用mysql_close(),因为非持久打开的链接会在脚本执行结束时自动关闭

就个人而言,我总是喜欢确保我学究式地关闭我打开的任何东西,但这不是必需的。

手册:

通常不需要使用mysql_close(),因为非持久打开的链接会在脚本执行结束时自动关闭


所以,不,不是真的。在尝试可能会消耗大量资源的操作之前释放资源是有帮助的,但这可能不会产生太大的影响。

在大多数情况下,调用
mysql\u close
不会产生任何影响,从性能上看。但关闭程序不再使用的资源(文件句柄、打开的套接字、数据库连接等)始终是一种好的做法

如果您正在做一些可能需要几秒钟时间的事情(例如,从RESTAPI读取和解析数据),则尤其如此。由于API调用正在进行,负面的网络状况可能会导致脚本阻塞几秒钟。在这种情况下,打开数据库连接的适当时间是在REST调用完成并解析之后

总结我的答案,有两条大规则:

  • 仅在程序准备好使用资源(文件句柄、套接字、数据库连接等)时分配资源
  • 程序完成后立即释放资源

  • 什么;关闭链接的好处是什么

    通常,自己关闭链接没有好处,因为它会自动关闭

    我只能想到几个好处

    • 如果您的脚本在使用完数据库后需要进行大量处理,那么在脚本继续执行其他操作时,过早关闭数据库链接可能有助于释放一点内存和其他资源(如MySQL连接)。在大多数脚本中,这不太可能是一个问题,因为大多数脚本在完成数据库连接后都会很快终止,并且在PHP脚本终止之前保持连接打开的时间相对较短

    • 代码的完整性和清洁度。它可以给您一种良好的感觉,并且关闭您打开的内容通常是良好的代码卫生,即使在这种情况下,技术上并不需要这样做

    关闭链接有什么好处

    好处是,您可以在PHP请求清理之前释放到数据库的连接以及数据库服务器中的相应资源


    例如,假设您在请求的前20毫秒内查询请求所需的所有数据。但是你的PHP代码还要花80毫秒运行代码并格式化结果。这意味着80%的时间里,应用程序不需要打开数据库连接,平均而言,数据库服务器上10个连接线程中有8个处于空闲状态并正在使用资源。

    what;关闭链接的好处是什么?自己关闭链接没有好处。@Charles如果您的脚本在使用MySQL之后需要一段时间才能完成,那么释放其他脚本可能想要使用的连接可能是有益的。如果您限制到数据库的连接数,请使用MySQL\u close()释放其中一个连接,允许其他脚本访问感谢您的回答。从未想过这一点,但您的简单数学证明了关闭这些连接的巨大优势(至少使其成为标准实践,因为您永远不知道是否会引入可能需要在完成数据库后运行一段时间的代码)