美文网首页
为什么说php长连接 连接mysql是鸡肋

为什么说php长连接 连接mysql是鸡肋

作者: 方圆泉 | 来源:发表于2020-12-30 15:24 被阅读0次

    大家都知道php 是没有进程池和连接池。 但是mysql是支持长连接的,我们php可不可以用长连接的方式来连接数据库呢?

    我们通常认为用pdo的方式连接mysql开启长连接实现提升效率:PDO::ATTR_PERSISTENT => true;

    查看效果: mysql-cli > show processlist;

    直接上结论:

    1. cli下执行php,长连接无效,cli下脚本一退出,连接即释放

    2. apche+mod_php不开启mpm模块的话,无论mysql mysql_pconnect、pdo_mysql长连接, 页面访问完毕, mysql连接即释放。

    3. apche+mod_php开启mpm模块(worker模式)的话,无论mysql mysql_pconnect、pdo_mysql长连接, 页面访问完毕, mysql连接+1,直到达到最大的mysql连接数,不在增加,但是访问页面还是可以复用连接查询到相应数据。

    4. nginx+php-fpm下mysql长连接基本无效果。

    由于现在我们基本上都用lnmp的架构,apache用的比较少了。 所以用长连接的方式提升效率的意义基本不成立。

    唯一可用实现连接池的方式是用swoole实现php连接池, 但这种比较麻烦。 这个可能是比较鸡肋的地方。

    php 对应的生命周期:

    1. php 命令行生命周期

    2.多进程php-fpm方式生命周期

    相关文章

      网友评论

          本文标题:为什么说php长连接 连接mysql是鸡肋

          本文链接:https://www.haomeiwen.com/subject/chehoktx.html