页面获取账号响应时间长的解决记录

【问题起源】:

          在今天的功能测试中,页面中点击获取用户、服务的筛选框,出现长时间转圈获取数据慢的情况。抓包查看发现请求的响应时间超过了10秒! 

             

【思路分析】:

          测试环境中的用户量不到1000,请求的接口超过了10秒的响应时间,存在严重的异常问题! 后续如果用户表如果上百万、千万,那得多慢 ,不可想象~~~

         

【排查问题】:

           1、首先,抓到这个接口是哪个模块的(我们是微服务,30多个服务,排查问题得清晰的定位问题接口是属于服务的),抓包可看出是属于账号服务

           2、定位到所属服务后本人认为最快的方法就是先查看日志,进入Linux分别查看打印问题接口和sql的耗时

           3、当打印查询sql的耗时的时候,发现执行sql的时间占用了10秒!

           4、那么终于到问题根源,是查sql导致过长的响应时间问题。

           5、发现是sql问题,就去查看执行的sql语句,发现这个sql用到了left join(多表联查)的功能,不只是单表数据的查询。

           6、查看关联的服务表,发现数据量(测试数据)还是比较大的。

【最终解决】:

          经上述排查后,最终问题定位到sql多表查询、关联表数据量过大,查看表设计发现未添加索引,加上索引后在次进入页面点击查询 ,时间上有了巨大的提升。

          最终解决方式就是加了索引提升了sql的查询时间。

             

          

            

 

猜你喜欢

转载自www.cnblogs.com/wangxianglong/p/11793343.html