找出重复查询
使用查询日志、链路追踪或数据库指标,定位执行大量相似语句的请求。比较查询数量与返回记录数,并检查是哪种关系或字段触发了重复读取。
开发环境中的少量数据可能掩盖问题。应使用接近实际的列表规模复现,并检查序列化、模板或辅助函数是否隐式访问关联对象。
有计划地加载关联数据
根据数据模型和数据库,可以使用联表查询、按键批量查询或 ORM 的预加载功能。既要避免逐行查询,也要避免返回大量重复数据的超大结果集。
比较修改前后的查询总数、返回行数、响应大小和延迟。为典型列表规模添加回归检查,同时在调整关联数据加载方式时保留分页和授权筛选。