解决 lumen,laravel 并发较多时常会出现数据链接失败的情况
解决 lumen,laravel 并发较多时长会出现数据链接失败的情况
最近发现laravel或者lumen(当前使用版本5.2)在并发较大的情况下时常出现链接失败的问题,现给出解决方案如下(理论上讲和框架没关系,所有的mysqlPDO链接都可以这样解决):
在config/database.php的mysql配置里面增加如下选项
'options' => [ PDO::ATTR_PERSISTENT => true, ],
这个选项是使数据链接进行持久化,减少断开次数,
官方是这么描述的这一特性:
“持久连接在脚本结束后不会被关闭,且被缓存,当另一个使用相同凭证的脚本连接请求时被重用。持久连接缓存可以避免每次脚本需要与数据库回话时建立一个新连接的开销,从而让 web 应用程序更快”
注意:
如果想使用持久连接,必须在传递给 PDO 构造函数的驱动选项数组中设置 PDO::ATTR_PERSISTENT
。如果是在对象初始化之后用 PDO::setAttribute() 设置此属性,则驱动程序将不会使用持久连接。