MySQL调优实践篇
记一次实习MySQL调优
业务需求:热门帖子展示
- 统计该帖子在某段时间内的评论量、浏览量,按评论量、浏览量、帖子创建时间降序排序
三张表:app_invitation
帖子表、app_invitation_comment
帖子评论表、app_invitation_look
帖子浏览记录表
调优步骤
调优背景:之前离职员工开发好的部分,测试时数据量少,未发现响应速度太慢问题,数据量增加,响应速度太慢,需进行优化
-
先查看代码是否需要优化 :
- 不需要对所有查询出来的数据都进行处理,对需要显示的部分进行处理即可
-
sql语句的编写
原sql语句编写冗余,既联表又子查询都是为得到同一信息点
<select id="moreHotList" resultType="AppInvitation" > SELECT count(b.id) count,a.look, (SELECT IFNULL(sum(look),0) from app_invitation_look where create_time BETWEEN #{start} and #{end} and invitation_id = a.id) look2, a.id