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

mysql 多表关联查询性能优化-同一sql不同的执行计划

一、问题背景

        相同的sql,不同的日期,执行的时间差异很大,执行计划不一样。执行快时,30ms左右。执行慢时,15s左右。

二、分析结论

1、经过分析,发现不同日期下,sql的执行计划不同,驱动表不同。sop作为驱动表时,执行速度快,sot作为驱动表时,执行速速慢。

2、驱动表确认原则,即小表原则。

3、如何确认大小表

        以sop和sot两个表的关联为例。在现有查询条件不表的情况下

a、仅针对sop表进行查询,保留关联查询中所有有关sop表的查询条件,分析单查sop表的执行计划,查看对应的rows值。4.11日的扫描数据是11768,5.11日的扫描数据是15056。

b、仅针对sot表进行查询,保留关联查询中所有有关sot表的查询条件,分析单查sot表的执行计划,查看对应的rows值。扫描的数据是固定的,都是13952。

        所以,4.11日关联查询,驱动表是sop。5.11日的关联查询,驱动表是sot。

三、解决方案

a、关联查询时,使用force index语法,强制指定索引

参考mysql多表查询,强制使用特定索引-CSDN博客

b、关联查询时,使用STRAIGHT_JOIN语法,强制指定驱动表

参考【性能提升神器】STRAIGHT_JOIN,指定驱动表-CSDN博客

相关文章:

  • 最近最少使用缓存
  • dify:开源 LLMOps平台。
  • Android Retrofit 封装模版
  • 物体检测算法-R-CNN,SSD,YOLO
  • 苍穹外卖①
  • Unity数据持久化2——XML
  • JavaScript 中的变量声明方式及其应用场景
  • MySQL学习之DQL语句(数据查询语言)
  • MySQL——表的约束
  • 使用Flask ORM进行数据库操作的技术指南
  • 卷积神经网络(CNN)详细介绍及其原理详解
  • 力扣279. 完全平方数
  • 赶紧收藏!2024 年最常见 20道 Redis面试题(四)
  • 《Python编程从入门到实践》day37
  • 小林coding笔记
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • [nginx文档翻译系列] 控制nginx
  • JavaScript 基础知识 - 入门篇(一)
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • Node项目之评分系统(二)- 数据库设计
  • Spring-boot 启动时碰到的错误
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 工作手记之html2canvas使用概述
  • 两列自适应布局方案整理
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 微服务核心架构梳理
  • 协程
  • 用Visual Studio开发以太坊智能合约
  • ​io --- 处理流的核心工具​
  • # Panda3d 碰撞检测系统介绍
  • #预处理和函数的对比以及条件编译
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (强烈推荐)移动端音视频从零到上手(下)
  • (三)模仿学习-Action数据的模仿
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (循环依赖问题)学习spring的第九天
  • (原創) 物件導向與老子思想 (OO)
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)fock函数详解
  • (转载)hibernate缓存
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .net refrector
  • .Net 路由处理厉害了
  • .NET 使用配置文件
  • .Net6 Api Swagger配置
  • .NET成年了,然后呢?
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • ??javascript里的变量问题
  • @KafkaListener注解详解(一)| 常用参数详解