Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个连接到 MySQL 的 PHP 脚本执行一些操作并结束。
最后有一个mysqli_close($link);说法。
mysqli_close($link);
我仍然在 MySQL 进程列表中有该用户的睡眠进程,但不知道从哪里来?
据我所知,一旦 PHP 脚本结束,它应该关闭连接,即使mysqli_close最后没有 a (但有一个)。
mysqli_close
那么该用户的那些休眠进程在哪里呢?
如果我重新启动httpd他们都会死。
httpd
mysqli 提供持久连接。也就是说,它在 PHP 开发人员的连接模型和 dbms 模型之间提供了一层。
当您使用持久连接时,PHP 程序会使用 mysqli_close(). 但是,与 DBMS 的连接由 PHP 运行时维护,为下一次打开调用做好准备。
mysqli_close()
这在繁忙的网站上提供了巨大的加速,因为从 PHP 运行时(或任何其他 dbms 客户端)打开连接并且 dbms 很昂贵。
对我来说,您的大量空闲连接(其中 10 个)闻起来很像一个持久连接池。
这可以解释你所看到的吗?