以下为文档示例数据库配置代码,在pool参数中设置了最大连接数(5)、最小连接数(1),那是不是意味着一个子进程中,最多储存5个数据库连接、最小储存1个数据库链接?
return [
// 默认数据库
'default' => 'mysql',
// 各种数据库配置
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => '127.0.0.1',
'port' => 3306,
'database' => 'webman',
'username' => 'webman',
'password' => '',
'unix_socket' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
'pool' => [ // 连接池配置,仅支持swoole/swow驱动
'max_connections' => 5, // 最大连接数
'min_connections' => 1, // 最小连接数
'wait_timeout' => 3, // 从连接池获取连接等待的最大时间,超时后会抛出异常
'idle_timeout' => 60, // 连接池中连接最大空闲时间,超时后会关闭回收,直到连接数为min_connections
'heartbeat_interval' => 50, // 连接池心跳检测时间,单位秒,建议小于60秒
],
],
'sqlite' => [
'driver' => 'sqlite',
'database' => '',
'prefix' => '',
'pool' => [ // 连接池配置,仅支持swoole/swow驱动
'max_connections' => 5, // 最大连接数
'min_connections' => 1, // 最小连接数
'wait_timeout' => 3, // 从连接池获取连接等待的最大时间,超时后会抛出异常
'idle_timeout' => 60, // 连接池中连接最大空闲时间,超时后会关闭回收,直到连接数为min_connections
'heartbeat_interval' => 50, // 连接池心跳检测时间,单位秒,建议小于60秒
],
],
'pgsql' => [
'driver' => 'pgsql',
'host' => '127.0.0.1',
'port' => 5432,
'database' => 'webman',
'username' => 'webman',
'password' => '',
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
'pool' => [ // 连接池配置,仅支持swoole/swow驱动
'max_connections' => 5, // 最大连接数
'min_connections' => 1, // 最小连接数
'wait_timeout' => 3, // 从连接池获取连接等待的最大时间,超时后会抛出异常
'idle_timeout' => 60, // 连接池中连接最大空闲时间,超时后会关闭回收,直到连接数为min_connections
'heartbeat_interval' => 50, // 连接池心跳检测时间,单位秒,建议小于60秒
],
],
],
];
这个参数是可以调整。我个人看法就是确定你当前进程数量,就可以设置最大连接数。最小链接也可以计算的确定你定时任务这类常驻进程数 加上几个 就可以了。(这里在没有协程情况说的),这些参数都是要根据的数据库配置动态调节。