一则sql优化实现接口耗时降低30倍的优化案例
2024-09-01 22:28:07
业务场景:
也测的业务,如上图,通过捕获业务的涉及的接口如下:
查询接口耗时大于7s,已经是非常的慢
经验提示:
一般接口响应时间慢的问题,最简单的方式就是监控接口相关的sql是否存在问题
开启mysql的慢查询监控:
这两个sql加起来,大致等于接口的响应时间,证明问题猜的没错,问题就是这两个sql查询慢导致的问题7s左右
验证sql是否有问题:
查看这个表的执行计划:
发现d表走了全表扫描,直接查询60多万的数据,肯定会很慢
由于d表已经存在orgId存在索引,考虑给o表添加索引
ALTER table t_debt_overview ADD INDEX IDX_orgId(`orgId`);
现在扫描的行数减少了,只扫描必要的4999行
另外的sql问题也解决了
不用压测,这个性能问题就可以解决
总结:所以在性能测试的过程中,不一定非要执行压测才能发现性能问题,一般在性能压测前,简单的执行一下业务,看看是否存在耗时比较长的业务,提前优化,提高压测的效率
最新文章
- 一条Sql语句分组排序并且限制显示的数据条数
- Elasticssearch学习教程
- linux vmware安装完成后如何设置桥接上网
- Ansible-Tower快速入门-1.概览【翻译】
- Javascript浏览器对象模型BoM要点总结
- Python成长笔记 - 基础篇 (十三)--堡垒机
- spring3.0+Atomikos 构建jta的分布式事务 -- NO
- 济南学习 Day 1 T2 am
- 【转】Android 应用测试总结
- KAFKA分布式消息系统[转]
- Assembly 'Microsoft.Office.Interop.Excel
- 操作系统下查看HBA卡信息wwn的方法
- Linux中的读函数与块高速缓存
- 第四题(迅雷笔试题):编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- C# 反射、与dynamic最佳组合
- AIM Tech Round 4 (Div. 2)(A,暴力,B,组合数,C,STL+排序)
- Shell脚本学习 - 函数,输入输出重定向,文件
- PEP8中文翻译(转)
- 浅谈USB驱动架构 转载
- win10 64 使用 visual studio 2017 搭建汇编开发环境