一 简介: 我们会在此篇文章继续记录日常故障问题
二 案例汇总
1 sql慢日志出现 administrator command: Prepare; ,时间很长
分析 : 此场景常见于 PHP相关应用
补充基础知识
php-pdo 两种prepare模式
1. 本地prepare 不会发送给MySQL Server
2. 服务器端prepare 会发送给MySQL Server
2 解决办法
PHP将链接模式修改为本地 然后通过mysql查看 show global status like 'Com_stmt_prepare'; ,如果值不再变化,证明修改成功
总结
1. 在服务器端的prepare毕竟有消耗,当并发量大,频繁prepare的时候,就会有性能问题
2. 服务端的prepare模式还会带来的另外一个问题就是,排错和slow 优化有困难,因为大部分情况下是看不到真实query的
3. 尽量设置php-pdo为 $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,true) ,在本地prepare,不要给服务器造成额外压力