1. 技术栈
2. 项目功能描述
大约 1 分钟
从0到1探索,学习肝货,无畏iiii
后台管理分页查询时,发现请求接口超时
查看日志,发现日志中打印的分页查询的数据,发现异常,查看响应时间41秒,一个分页查询请求41秒大概率是因为慢SQL,接着我们分析sql发现查询确实很慢
确认了是SQL的原因,通过explain分析,发现left join关联的表竟然全是全表扫描,此时我们确认表中是否有关联字段索引,发现索引也有,那为什么有索引却不走索引呢,查看explain中 extra 列,发现一个从未见过的信息 **Using where; Using join buffer (Block Nested Loop) **,官方文档解释如下,使用连接缓冲区(块嵌套循环),相当于我们代码中的两层for循环,随着数据量的增加查询效率也会成倍增加。
🔥🔥🔥实战教程带你玩转Java、SpringBoot、Vue与uni-app!
🌐管理系统 🌟Java 💻SpringBoot 🚀Vue 📱uni-app小程序 🔥业务升级
Out of Memory(OOM)内存不足,从字面意思我们可以看出该异常的出现的原因是因内存不足导致的。
今天分析的此案例是近日我们生产环境出现的真实案例,出现问题的主要原因是随着业务量的增长,业务数据日益增长,在推送任务SQL查询的时候没有限制查询条数导致的,下面我们从0开始做一下复盘。
菜单栏选择 File -> New -> Project...
进入页面选择Spring Initializr