php pdo支持连接池吗

 手机用户2502883445 发布于 2022-11-20 12:50

RT php想找合适的连接池,pdo支持吗

6 个回答
  • PDO加上ODBC就可以了

    2022-11-20 13:20 回答
  • 连接池得用mysql代理

    2022-11-20 13:20 回答
  • 可以使用swoole扩展来实现。

    具体参考: 基于swoole扩展实现真正的PHP数据库连接池

    2022-11-20 13:20 回答
    1. 不支持

    2. 有一个选项可以让你开启持久连接,然而你会发现到时候服务器连接大量没释放所以不推荐使用,你感兴趣可以试试

    $dbh = new PDO('mysql:host=xxx;port=xxx;dbname=xxx', 'xxx', 'xxx', array( PDO::ATTR_PERSISTENT => true));
    2022-11-20 13:20 回答

  • 程序使用持久连接(PDO::ATTR_PERSISTENT)访问数据库,则一个PHP-FPM工作进程对应一个到MySQL的长连接.
    请求结束后,PHP不会释放到MySQL的连接,以便下次重用,这个过程对程序是透明的.
    这可以看作是PHP-FPM维护的"数据库连接池".
    假如你的服务器有12个核心(超线程),你开启24个PHP-FPM工作进程.需要注意的是,PHP-FPM的进程数pm.max_children不要多于MySQL的最大连接数max_connections(默认151).

    <?php
    $app = array(
        'db_host'        => '127.0.0.1',
        'db_username'    => 'root',
        'db_password'    => '',
        'db_name'        => 'mybase',
        'db_port'        => 3306,
        'db_pconnect'    => true
    );
    $dsn = "mysql:dbname=$app[db_name];host=$app[db_host];port=$app[db_port];charset=utf8";
    $db = new PDO($dsn, $app['db_username'], $app['db_password'], array(
        PDO::ATTR_PERSISTENT => $app['db_pconnect'],
        PDO::ATTR_EMULATE_PREPARES => false,
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
    ));
    2022-11-20 13:20 回答
  • PHP不支持,PHP连接数据库是非常快的(比其他语言的数据库连接方式快很多),一般用直连就行了;pdo支持连接池。

    2022-11-20 13:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有