## `PdoPersistent` 组件 PdoPersistent 是 Pdo 的长连接版本,使用方法与 Pdo 完全一至,仅配置不同。 >[success] 长连接比短连接可提升两倍左右的并发性能。 - MixHttpd 中单个工作进程不管运行多少个 host,连接配置相同的 PdoPersistent 组件都共用一个连接。 - 另外你不需要处理连接超时的问题,组件底层已经帮你处理了。 | 类 | 调用 | 运行环境 | 连接方式 | | --- | --- | --- | --- | | mix\client\PdoPersistent | \Mix::app()->rdb | MixHttpd/CLI | 长连接 | ## 组件配置 比 `Pdo` 多了两个配置项: * persistentTime:该配置决定框架多长时间重新连接一次数据库,避免数据库连接超时被主动kill连接,该数值应该小于 MySQL 配置文件内的 `interactive_timeout` 与 `wait_timeout` 参数。 * reusableConnection:重用相同配置的连接,当使用 mix-httpd 开发的 Web 应用中有多个 host 时,该配置可减少连接数量。 `` App配置文件中,该组件的默认配置如下: ~~~ // 数据库 'rdb' => [ // 类路径 'class' => 'mix\client\PdoPersistent', // 数据源格式 'dsn' => 'mysql:host=127.0.0.1;port=3306;charset=utf8;dbname=test', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => '', // 设置PDO属性: http://php.net/manual/zh/pdo.setattribute.php 'attribute' => [ // 设置默认的提取模式: \PDO::FETCH_OBJ | \PDO::FETCH_ASSOC \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC, ], // 连接持续时间(秒) 'persistentTime' => 7200, // 重用连接(相同配置) 'reusableConnection' => true, ], ~~~