背景:
系统用着用着突然出现卡,数据加载慢。这个时候有可能是sql查询问题导致的。这个时候我们要怎么排查这个问题呢。如果排查后是sql问题的话我们应该怎么优化呢!
处理方案:第一步定位
可以开启MySQL的慢查询日志,设置一个时间必须两秒的查询出来的数据都属于需要优化的sql,这个时候项目运行时符合条件的sql记录下来
第二步分析问题
根据日志记录出来的sql文件进行分析
- 可以分析一下表设计是否合理
- 排查sql语句是否写的合理
检查一下是否关联表太多,是否存在子查询,是否哪个where条件导致索引失效等等
3.数据量大的问题导致的,比如数据量大到加索引也不太好用,比如一个表里已经200多万条数据,这个时候我们有可能要采用分表来解决这个问题
第三步解决问题方案
1.加索引
2.注意sql语法
3.数据量大的时候分表