我使用的设置包括 PHP (5.5)、NGINX (1.1.19) 和 PHP-FPM,使用 MySQL (5.5.34) 作为数据库,以及很多很多存储过程。
我不想深入探讨我使用存储过程的原因,但据我所知,对它们使用持久连接是一种很好的做法,因为它们会随着每个连接加载,从而减慢速度(这仍然是真的吗?)。
现在,据我所知,要建立持久连接,我需要一些子进程,但是对于 PHP-FPM 来说,这是否必要/可能?我读过很多关于这方面的文章,但我并不完全确定。
基本上,主要问题是:当使用提到的设置(PHP-FPM、NGINX、MySQL)时,使用/处理与 MySQL 的持久连接的最佳方式是什么?是否可以?如果不是,有什么可能的解决方法?
提前致谢!
最佳答案
PHP-FPM 作为守护进程运行,因此在 worker 被释放之前保持特定状态。这意味着您可以利用持久连接,例如 connections and connection management 中记录的内容部分。
关于在每个连接上加载的存储过程,除非您不断地创建和删除它们,否则答案是不会。存储过程通常持久保存在数据库服务器上,类似于模式中的触发器和其他数据库对象,因此只会在实际执行时产生开销。
关于mysql - PHP NGINX PHP-FPM,是否需要/可能进行 fork ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20211462/