0

我有一个连接到 MySQL 的 PHP 脚本执行一些操作并结束。

最后有一个mysqli_close($link);说法。

我仍然在 MySQL 进程列表中有该用户的睡眠进程,但不知道从哪里来?

据我所知,一旦 PHP 脚本结束,它应该关闭连接,即使mysqli_close最后没有 a (但有一个)。

那么该用户的那些休眠进程在哪里呢?

如果我重新启动httpd他们都会死。

4

1 回答 1

2

mysqli 提供持久连接。也就是说,它在 PHP 开发人员的连接模型和 dbms 模型之间提供了一层。

当您使用持久连接时,PHP 程序会使用 mysqli_close(). 但是,与 DBMS 的连接由 PHP 运行时维护,为下一次打开调用做好准备。

这在繁忙的网站上提供了巨大的加速,因为从 PHP 运行时(或任何其他 dbms 客户端)打开连接并且 dbms 很昂贵。

对我来说,您的大量空闲连接(其中 10 个)闻起来很像一个持久连接池。

这可以解释你所看到的吗?

于 2012-08-30T12:26:44.527 回答