当前位置: 首页 > news >正文

第十八课:后端性能优化方法论——从 SQL 到 JVM 到接口(工程实战全景版)

目标:
当线上接口变慢时,你能10 分钟判断方向,30 分钟定位问题,1 小时给出方案
不是靠感觉,而是一套固定流程。


一、性能优化第一原则:先“测”再“改”

性能优化不是一上来加缓存、加线程、加 MQ。
第一步永远是 ——拿数据。

你必须先看三类指标:

维度看什么目的
用户视角接口耗时 P50 / P90 /P99真实体验
系统视角CPU / 内存 / GC / Load资源是否打满
链路视角Controller → Service → DAO → DB

找瓶颈段

二、P50 / P90 / P99 是什么?

这是百分位响应时间(Percentile Latency)

含义

把所有请求耗时从小到大排序:

指标含义工程意义
P50一半用户在这个时间内完成大多数体验
P9090% 用户在这个时间内完成开始感觉慢
P9999% 用户在这个时间内完成

是否被投诉

为什么看 P99?

平均值会骗人:

  • 99% 请求 100ms
  • 1% 请求 5 秒

平均值可能只有 150ms,
但用户只会记住那 5 秒。

工程结论:

P50 看整体,P90 看趋势,P99 看灾难。

三、标准优化流程(SOP)

这是你要记住的核心:

Step1 看 P99 Step2 拆链路 Step3 SQL Explain Step4 JVM 指标 Step5 压测验证 Step6 监控固化

四、三层分治法:接口层 → SQL 层 → JVM 层


1)接口层优化(入口层)

常见慢的原因

  • 返回体过大
  • DTO 字段太多
  • 日志打印大对象
  • N+1 RPC 循环调用
  • 超时重试雪崩

抓手表

现象排查点解决方案
偶发慢Trace 链路拆 RPC/DB 耗时
返回慢Response Size字段裁剪 / 分页
CPU 不高却慢阻塞等待timeout + 熔断
内存上涨大集合分页 / 流式
日志拖慢打印过量日志采样
循环慢N 次 RPC批量接口

口诀:

看返回体 → 看 RPC 次数 → 看日志大小

2)SQL / 数据库层优化(DAO)

六步 SQL 优化法

  1. 慢查询日志
  2. Explain
  3. 索引设计
  4. 减少扫描
  5. 减少回表
  6. 控制返回量

高频 SQL 坑

问题原因解决
全表扫描没索引建索引
type=ALL索引失效调整 where
filesort排序无索引联合索引
锁等待长事务拆事务
连接等待池太小扩容连接池
select *回表重字段裁剪

口诀:

慢 SQL → Explain → 索引 → 行数 → 锁 → 连接池

3)JVM 层优化(运行时)

常见瓶颈

  • GC 频繁
  • 大对象创建
  • 线程阻塞
  • 线程池打满
  • 锁竞争

抓手表

现象排查点解决
CPU 高GC减少对象
内存不降Old GenDump 分析
P99 抖动STW调堆/G1
QPS 上不去阻塞异步化
Load 高锁竞争无锁化
吞吐低线程多减线程

口诀:

看 GC → 看线程 → 看对象 → 最后才调参数

五、三层联动排查顺序(实战)

顺序行动目标
1看 P99确认慢
2打 Trace找耗时段
3SQL Explain排 DB
4JVM 指标排 GC/线程
5压测验证优化
6监控防复发

六、工程化终点:让优化变成机制

不要每次救火,要形成体系:

机制内容
慢 SQL 机制慢日志 + 周报
压测机制发版前压测
监控机制P99 / 线程池 / GC
容量机制QPS / 连接数预算
限流机制防止雪崩

七、最小闭环实战(建议 Demo)

接口:GET /users?page=1&size=20

三阶段演进

  1. 初版:select * + 大 DTO(故意慢)
  2. SQL 优化:索引 + explain 对比
  3. JVM/接口优化:对象复用 + 日志采样

最终总结(记住这四句话)

慢了先看 P99 再拆链路 SQL 看 explain JVM 看 GC

性能优化不是技巧,而是一套固定流程。
只要流程不乱,你就不会“越改越慢”。

下一篇:

后端性能优化实战——一个接口从 2 秒到 90ms 的全过程

http://www.jsqmd.com/news/369417/

相关文章:

  • 池州个人心理咨询室深度测评:专业与口碑的双重考量 - 野榜数据排行
  • 2026化工原料厂家哪家好?双氧水/硫磺/工业盐标杆企业全解析 - 深度智识库
  • 2026年有实力的园林景观设计,别墅园林景观公司品牌推荐清单 - 品牌鉴赏师
  • 大模型实习模拟面试之大模型算法Agent八股整理秋招面经:从LangChain到Multi-Agent协作的系统性拷问
  • 2025年-2026年全屋定制品牌推荐:居家生活场景深度评测,针对收纳痛点与风格统一指南 - 十大品牌推荐
  • 对比一圈后 9个降AIGC平台深度测评:继续教育降AI率必备工具推荐
  • 京东e卡线上回收平台推荐 - 团团收购物卡回收
  • 大模型实习模拟面试之深圳Agent小厂一面:从Prompt工程到MCP服务构建的全栈实战深度复盘
  • 2026年郑州热门的游乐设备公司推荐,郑州战魂游乐设备靠谱吗 - myqiye
  • leetcode 976. Largest Perimeter Triangle 三角形的最大周长
  • 2026年尼龙回收热门厂家,环保与效率并存,尼龙回收哪家好优质品牌选购指南 - 品牌推荐师
  • 2026年诚信的移动电动隔断,商用电动隔断厂家采购决策指南 - 品牌鉴赏师
  • 全屋定制品牌如何避坑?2025年-2026年全屋定制品牌推荐与评价,解决板材环保与工艺一致性痛点 - 十大品牌推荐
  • Stack Canary(栈溢出保护)
  • NX/DEP(栈不可执行)
  • Java 零基础入门:核心基础知识点全总结
  • 实操指南|安科士1.25G CWDM SFP光模块选型、部署与运维全攻略
  • 2026年靠谱的楚雄家具,红河家具厂家品牌推荐榜单 - 品牌鉴赏师
  • 2026年有实力的园林绿化施工,产业园区园林绿化,园林绿化工程公司推荐及选择参考 - 品牌鉴赏师
  • 全屋定制如何兼顾美观与实用?2025年-2026年品牌推荐与评价,解决风格混乱与空间浪费痛点 - 十大品牌推荐
  • opencv 4.x 静态编译后 录像视频保存为h264
  • 2026年靠谱的Minitab软件代理商口碑推荐 - 品牌鉴赏师
  • 实用指南:逻辑回归解释
  • FORTIFY_SOURCE(编译时安全检查)
  • 万爱通礼品卡回收必看!靠谱平台与快速交易流程全攻略 - 团团收购物卡回收
  • 2026年知名的玉溪全屋定制,丽江全屋定制厂家新品推荐榜 - 品牌鉴赏师
  • 低烟无卤电力电缆怎么挑?2026年口碑佳选来袭,通信电缆/YJV22高压电力电缆,低烟无卤电力电缆直销厂家排行榜单 - 品牌推荐师
  • AI违规输出防护:监管与风险双重驱动下的刚性需求
  • 2026年重庆杀虫剂厂家哪家可靠?从技术到服务 全维度实用参考手册 - 深度智识库
  • 2026年专业的红外理疗灯珠,红光理疗灯珠厂家选购参考指南 - 品牌鉴赏师