zoukankan      html  css  js  c++  java
  • 页面获取账号响应时间长的解决记录

    【问题起源】:

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

                 

    【思路分析】:

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

             

    【排查问题】:

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

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

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

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

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

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

    【最终解决】:

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

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

                 

              

                

     

  • 相关阅读:
    第十章 系统级I/O
    第九章 虚拟内存
    第六章 存储器层次结构
    第八章 异常控制流(下)
    第八章 异常控制流(上)
    第三章 机器的程序级表示(下)
    第三章 机器的程序级表示(中)
    第三章 机器的程序级表示(上)
    python学习之列表的定义以及增删改查
    Python学习之字符串中的下标和切片以及逆序
  • 原文地址:https://www.cnblogs.com/wangxianglong/p/11793343.html
Copyright © 2011-2022 走看看