FastAPI接口从2.3s优化到89ms:一次Profiling驱动的数据库与缓存调优记录
线上一个FastAPI订单查询接口P99延迟飙到2.3s,QPS只有120就出现大量超时。本文用cProfile+py-spy定位到N+1查询和缺失索引问题,配合SQLAlchemy的selectinload、Redis缓存热点数据、以及uvicorn worker调参,最终P99降到89ms,QPS提升到1400+。文中包含完整压测对比数据和可复现代码。

以项目为主线推进长期学习。当前重点关注人工智能应用,通过代码可维护性、开发效率提升持续提升能力;重视可维护性、稳定性与协作效率,并把过程整理成可复用的学习记录。
线上一个FastAPI订单查询接口P99延迟飙到2.3s,QPS只有120就出现大量超时。本文用cProfile+py-spy定位到N+1查询和缺失索引问题,配合SQLAlchemy的selectinload、Redis缓存热点数据、以及uvicorn worker调参,最终P99降到89ms,QPS提升到1400+。文中包含完整压测对比数据和可复现代码。
当团队从20人扩张到200人,原先“一条master走天下”的工作流彻底崩坏——合并冲突日均17次,线上事故3起,代码审查形同虚设。本文基于Git 2.39.1与GitLab 15.11,拆解一套经过生产环境验证的分支策略:trunk-based与GitFlow的折中方案,配合基于Merge Request的强制Code Review流水线,以及Jenkins 2.414.2驱动的CI/CD集成。