前言
FastAPI 已经是 Python 最快的 Web 框架之一,但生产环境仍有大量优化空间。
技巧 1:使用 async 路由
路由声明为 async def 可让事件循环并发处理请求,单实例 QPS 提升 3-5 倍。
技巧 2:合理配置数据库连接池
pool_size=10, max_overflow=20, pool_pre_ping=True 是生产环境的经典配置。
技巧 3:中间件越少越好
每个中间件都会增加请求处理延迟。CORS、日志、CSRF 中间件要精简到必要项。
技巧 4:使用 Redis 缓存热点数据
对首页文章列表、热门标签等高频查询,使用 Redis 缓存可将响应时间从 50ms 降到 2ms。
技巧 5:uvicorn workers 数量
推荐 workers = CPU 核心数 * 2 + 1,但要注意内存占用。
技巧 6:避免 N+1 查询
使用 SQLAlchemy selectinload 或 joinedload 解决 N+1 问题。
技巧 7:异步 IO 库
HTTP 客户端用 httpx,数据库用 asyncpg / aiomysql。
总结
性能优化是持续过程。先用压测找出瓶颈,再针对性优化,避免过早优化。