工作记录-mysql调优例子

同事跟我反应线上的项目有一个后台列表响应的很慢,我就抽空看了下

列表是由一个ajax从后台取出json数据,所有的开销都是php+mysql,chrome network显示那个请求需要26s的响应。我的第一反应应该是数据量大了mysql查询慢导致。

我记得这个项目配置了慢查询日志,于是

show global variables like '%slow%'    #查看是否开启满查询 

slow_query_log 的值为 on 已经开启了慢查询

show global variables like '%long%'   #查看满查询日志文件在哪里

我看了下慢查询记录,果然记录刚刚的查询,花费时间16s

我复制出该条语句并在本地用备份数据进行分析

explain  sql
麦库截图20171106115702934.jpg

可以看到该查询影响了2个表分别是2882和1339行,并且没有使用索引。
于是我就给他们的关联字段加上了索引。

ALTER TABLE `smsmsg`
 ADD INDEX `phone` (`phone`);
ALTER TABLE `user`
 ADD INDEX `phone` (`phone`);

结果

最终响应时间缩短到了56ms,再次分析查询语句

麦库截图20171106115612990.jpg

使用到了索引,并且影响行数只有30和1了!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容