SQL语句执行超时问题
上周遇到一个SQL超时问题,多个JOIN,最后SUM求和,客户日志里有超时信息。
但是奇怪的是把日志里的超时单独拿出来放到SQL里执行,并没有超时,奇怪得很。
原因有很多,其中一种是“参数嗅探”,具体细节可以参考其他文章了解一二。
简单说下怎么优化的,分两个方向:
1、多表JOIN,改成先得到一张临时表,再通过临时表去JOIN余下的表
2、查询时带上日期范围,避免统计所有数据
优化后,暂时没有再看到这个地方的超时信息,说明有一定作用。在实际的开发过程中, 应当避免很多表JOIN,以及大表JOIN,优先对数据做过滤,再关联,必要时使用临时表。
PS:转载请注明来源 https://www.cnblogs.com/sunshine-wy,疑问和勘误可在下方留言。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步