使用PDO对象运行多个PHP进程的最佳实践?

时间:2012-11-28 09:01:43

标签: php mysql linux pdo

我在使用MySQL的Linux机器上同时运行100个PHP脚本。 我正在使用PDO,ATTR_PERSISTENT参数设置为false。进程通常执行一些SQL命令并休眠30秒。

使用top查看进程列表,我看到了很多mysqld进程,每个进程占用了大量的内存空间。

我理解这个问题可以通过重新设计,使用队列和\或共享连接来解决,但我正在寻找临时修复,直到我准备好更好的设置。

处理此类设置的最佳补救措施是什么? 我应该在进程休眠时销毁并重新创建每个PDO对象吗? 我在PDO或MySQL中错过了一些基本的配置选项吗?

1 个答案:

答案 0 :(得分:0)

就PDO和睡眠而言,如果您不打算重新使用连接,请尽早将其杀死。原因在于,当它处于休眠状态时(无效,有效),MySQL上的工作线程仍然存在。

如果您 NOT 会浪费睡眠过程,我建议您进行持久连接并在PHP进程之间共享。然而,这会打开一堆新的蠕虫:死锁。

关闭连接的最佳方法是销毁PDO对象 - 即$yourPDOOBject = null