php pdo支持连接池吗

WBOY
Release: 2016-06-06 20:25:14
Original
2099 people have browsed it

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

回复内容:

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

PHP不支持,PHP连接数据库是非常快的(比其他语言的数据库连接方式快很多),一般用直连就行了;pdo支持连接池。

  1. 不支持

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

<code class="php">$dbh = new PDO('mysql:host=xxx;port=xxx;dbname=xxx', 'xxx', 'xxx', array( PDO::ATTR_PERSISTENT => true));</code>
Copy after login

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

<code><?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'
));</code>
Copy after login

连接池得用mysql代理

可以使用swoole扩展来实现。

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

PDO加上ODBC就可以了

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template