MySQL运维实战 之 PHP访问MySQL你使用对了吗

  • 时间:
  • 浏览:4
  • 来源:uu快3倍率_uu快3网游_单双计划

从朋友 的监控图可以 能看后,每天不定时间段的slow query 总数在攀升,有之前 却看不到任何query 语句

要处置你这一难题,首先想到的是,如何复现你这一难题,如何模拟复现你这一症状

strace -s50 -f php mysql1.php 跟踪

一堆如下慢查询

有之前 今天主要分享的并就有平台,有之前 在平台中看后的奇葩指数五颗星的slow issue

通过观察,发现你这一值不到变化,说明调整可能性生效

不到既然不到,朋友 就找了业务方,将对应业务的prepare依据一块儿看看

结果发现,业务使用的是php-pdo的依据,很多很多朋友 就又有了如派发现

那我 是想通过抓包,看看是不是可以验证朋友 的猜想: prepare的语句非常大,可能性条件非常复杂性,从而意味着着prepare在服务器端更慢

结果发现query语句也都非常简单

strace -s50 -f php mysql1.php 跟踪

朋友 都知道,slow query系统做的好不好,直接决定了处置slow query的效率难题

跟业务方确认后,朋友 使用的是后者,也有之前 修改了默认值,朋友 那我 是想提升数据库的性能,可能性预处置后只不到传参数就好了

有之前 对于朋友 的业务场景何必 适合,朋友 的场景是频繁打开关闭连接,也有之前 预处置基本就用不到

这是我接触到的slow query优化案例中从来不到过的清况 ,比较好奇,也比较兴奋,至此决心要好好看看你这一难题

1个多多 数据库管理平台,拥有1个多多 好的slow query系统,基本上就拥有了解锁性能难题的钥匙

朋友 可以 看后你这一模式下,prepare的之前 ,是不用将query发送给服务端的,不到execute的之前 才会发送

那顺藤摸瓜,抓取下这段时间有相同session id的整个sql执行过程

好了,关子卖完了,直接进入正题

朋友 可以 看后你这一模式下,prepare的之前 ,是将query+占位符 发送给服务端的

结论:朋友 发现,prepare时间的确很长,有之前 sql语句却执行的变快,这就很尴尬了

结论是:跟MySQL客户端一样,同样是看不到administrator command: Prepare

如何验证业务方是不是将prepare修改为local了呢?

结论: 通过php代码,朋友 成功模拟出了你会的结果

结论是: MySQL client 模拟出来的prepare 并就有朋友 期待的,并不到得到朋友 你会的 administrator command: Prepare

另外文档顶端也明确指出prepared statements 性能会不好