为何Laravel默认PDO::ATTR_EMULATE_PREPARES=false
关于PDO::ATTR_EMULATE_PREPARES
一样的sql,值为true的查询速度要快于false时,然而Laravel的默认值却是false
我只查到在PHP 5.3.9之前本地模拟有BUG,可是即使Laravel 9.x的默认值仍然是默认false的,而9.x要求是PHP ^8.0,即不可能遇上当初的BUG了
我的问题:
Laravel设置默认值为false的动机是什么?- 如果我在配置文件里将其指定为
true会有什么负面作用吗? - 大家是如何配置的?
经过多次测试发现
- 当PHP服务器性能远远好于MySQL服务器时,设为true能显著提高性能,反之亦然
- 当两者性能相当时设何值对性能的影响微乎其微
总结:当数据库服务器性能不够而php服务器性能冗余时推荐设置为true,否则设置为false的综合情况更好
关于 LearnKu
推荐文章: