Mysql 问题排查记录 朱雀 2022-04-24 13:04 229阅读 0赞 背景 项目网页打开数据很慢,于是我就去找dba查看一下是否有慢SQL。然后DBA给的反馈是MYSQL被我调挂掉了。所以访问超时,页面打不开。 发现过程 DBA 发现有一些SQL的执行时间超过1s.并且有一些并发访问。于是就将MYSQL直接给拖垮了。于是DBA将慢的SQL发给我如下。 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI0MjEwNzY3_size_16_color_FFFFFF_t_70][] 上图我们可以很明显看到我使用了count()命令。所以比较耗时。 解决方法 首先。我的业务需求是查找出 where a = xx and b = xx 的最后一行。 于是我用了首先 count 算出来有多少行。然后再按照分页查找。分为count()这么多页。每页一个数据。查最后一页。这样就能实现我的业务需求了。但是这样做确实是SQL会有问题。于是优化了 SQL。 变成了 Select \* from table where a = xx and b = xx order by id desc limit 1 ; 修改SQL。将SQL优化了。查询数据很快了。问题就解决了。 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI0MjEwNzY3_size_16_color_FFFFFF_t_70]: /images/20220215/fe3a0efa4d164d23875277997f8cd9c2.png
还没有评论,来说两句吧...