业务场景1:

排查生产日志,发现执行该sql需要16s

原始sql:

SELECT 
            dance_.company,
            dance_.depart_name,
            fr.workTime attendanceDate,
            user_.nick_name,
               user_.record_no number,
          
            group_concat(DATE_FORMAT(leave_start_time,'%m月%d日 %H:%i'),';',DATE_FORMAT(leave_end_time,'%H:%i') order by leave_start_time asc) timeDetail,
            sum(leave_.leave_hour) totalTimes
        FROM
            oct_hr_user_attendance_leave leave_
        JOIN oct_hr_user_attendance dance_ ON dance_.id = leave_.user_attendance_id
        join sys_user user_ on user_.id=dance_.user_id
        LEFT JOIN (select group_concat(work_time,';',offwork_time)
        workTime,frequency_id from oct_hr_frequency_details fd join
        oct_hr_frequency f on f.id=fd.frequency_id group by fd.frequency_id )
        fr on fr.frequency_id=dance_.frequency_id
        where dance_.attendance_date between '2021-07-21 00:00:00' and '2021-08-20 00:00:00' and leave_.leave_type='0'
        AND (dance_.depart_id in
                ("402881935e19455f015e1c22f39b00b4","402881935e19455f015e1c23e05d00b6","402881935e19455f015e1c462d22013a","40288193692876ee01692dc31d53209e","402881935e19455f015e1c45baf70138","402881935e19455f015e1c45003f0136","297e402a7aecc5e0017af0178d151d96","402881935e19455f015e1c2646be00c0","4028819373ae2a6b0173b361e7a314a0","402881935e19455f015e1c26c18f00c4","402881935e19455f015e1c3814cf0107","402881935e19455f015e1c3ee3a90120","402881935e19455f015e1c435f1b0132","40288193692876ee01692dba55e82061","40288193692876ee01692dc778ef20fe","402881936f5b78bb016f6a0ac8ca1e57","40288193764c2aa20176603b90db4eab","40288193764c2aa20176603c720b4eb1","40288193764c2aa20176603d5ffc4ebf","402881935e19455f015e1c2862fc00c9","297e402a776ba27901778ac64d3071aa","297e402a776ba27901778aceba377213","4028819373be203d0173c81163a0310c","4028819373be203d0173c812f99f3129","402881935e19455f015e1c2ac96700d6","402881935e19455f015e1c2b7e4700d9","402881935e19455f015e1c2c23a200db","402881935e19455f015e1c2cb2ed00df","402881935e19455f015e1c2fe41600e8","402881935e19455f015e1c29264400ce","402881935e19455f015e1c2e35bc00e4","402881935e19455f015e1c2edd9c00e6","4028819375a104930175a5a06c0c05d9","4028819375a104930175a5a160c105df","4028819375a104930175a5a274c305e1","4028819375a104930175a5a398ff05e3","402881935e19455f015e1c3f5f6a0122","402881935e19455f015e1c3fe1410124","402881935e19455f015e1c40e4340129","402881935e19455f015e1c414084012b","402881935e19455f015e1c41ccdc012d","40288193692876ee01692dc04b28208b","40288193692876ee01692dc1c3f8209a","402881935e19455f015e1c24fbd500bc","402881935e19455f015e1c244af900b9","402881936f1d36b6016f466cc7c804aa","297e402a781023d6017819d84fa330ec","297e402a781023d6017819d98a663108","297e402a781023d6017819d39d78306f","297e402a781023d6017819d8c81e30f2","297e402a781023d6017819ce27042eac","297e402a781023d6017819f565c43279","402881935e19455f015e1c31328400ea","402881935e19455f015e1c31b2cd00ec","402881935e19455f015e1c3286d200f0","402881935e19455f015e1c32f95f00f2","4028819366ed91dd0166f61940fd0d55","402881935e19455f015e1c3b059b0111","402881935e19455f015e1c3a0153010e","4028819365ec54900165f508fc7e11c5","402881935e19455f015e1c3c636d0117","402881935e19455f015e1c3be46e0114","4028819375a104930175a5a53d1805e7","402881935e19455f015e1c3cdb4c0119","40288193692876ee01692dc6826020f6","402881935e19455f015e1c42ac06012f","40288193737607bd0173a2ea869f2530","4028819375a104930175abb17dd3192b","402881936e645508016e7e08c5732e21","402881936e645508016e7e0a09012e2d","4028819372fa893b0173040fcd99258f","4028819360721ffa01607bc359761688","4028819360721ffa01607bc556ff1691","4028819360721ffa01607bc5c2731693","4028819360721ffa01607bc630381696","402881935e19455f015e1c258ca500be"
                ))
        group by dance_.user_id ORDER BY dance_.depart_id DESC;

问题分析:

刚开始认为是使用了in关键字导致查询变慢了,查询资料发现in最终是走索引了

解决方案:

再oct_hr_user_attendance_leave请假明细表中创建了索引列  user_attendance_id 和leave_type

最终执行sql只需要0.2s

总结:

优化sql还是需要如何创建合理的索引

Mysql sql优化(一)相关推荐

  1. mysql sql优化书籍_MySQL SQL优化的正确姿势

    大家好,我是知数堂SQL 优化班老师 网名:骑龟的兔子 已经很久没写文章了 今天分享一篇优化SQL 案例 slow query 里有如下 SQL 看下执行计划如下 从执行计划可以看出C表全表扫描了 那 ...

  2. MySQL SQL 优化参数 引发的悲剧

    大家好,我是知数堂SQL 优化班老师 网名:骑龟的兔子 今天给大家看一个案例来讨论,这个案例是真实案例,因为之前踩bug 导致数据库crash 所以临时关了优化器参数 set gloabl optim ...

  3. MySQL SQL优化

    前言 有人反馈之前几篇文章过于理论缺少实际操作细节,这篇文章就多一些可操作性的内容吧. 注:这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础. 优化目标 ...

  4. mysql sql优化_浅谈mysql中sql优化

    说到sql优化,一般有几个步骤呢,在网上看到了一篇很不错的帖子.在这分享一下吧,也是自己学习的一个过程. 一.查找慢查询 1.1.查看SQL执行频率 SHOW STATUS LIKE 'Com_%'; ...

  5. 谈谈mysql优化_浅谈MySQL SQL优化

    本文首发于个人微信公众号<andyqian>,期待你的关注 前言 有好几天没有写文章了,实在不好意思.之前就有朋友希望我写写MySQL优化的文章.我迟迟没有动笔,主要是因为,SQL优化这个 ...

  6. 18.Mysql SQL优化

    18.SQL优化 18.1 优化SQL语句的一般步骤 18.1.1 通过show status命令了解各种SQL的执行频率 show [session|global] status; -- 查看服务器 ...

  7. mysql sql优化与调优机制详解_MySQL之SQL优化详解(一)

    目录 序言: 在我面试很多人的过程中,很多人谈到SQL优化都头头是道,建索引,explain分析,like全模糊会导致索引失效 云云,于是我问道:优化之前,需要找出数据库中比如超过2s的慢SQL,你是 ...

  8. mysql sql优化

    事情是这样的,之前的小伙伴碰到一个sql优化的问题,,三个表联查,速度很慢要十几秒,当然这个三个表数据有个几万条的样子,想想不该呀,几万条数据而已,第一反应是索引问题,mysql完全没问题不至于这么慢 ...

  9. mysql sql优化_MySQL优化SQL语句的步骤

    我们在执行一条SQL语句的时候,如果我们想要知道这条SQL语句查询了哪些表,有没有使用索引,获取数据的时候遍历了多少行数据,我们可以通过EXPLAIN命令来查看这些执行信息,这些执行信息统称为执行计划 ...

  10. MySQL SQL 优化命令行问题 SQL 抓取方式

    墨墨导读:优化的道路永无止境. 对于数据库来说安装,部署几乎是一次性的.后期的管理和优化是持续性的工作. 对于MySQL来说,可以说90%问题都在SQL语句上面.从问题SQL的筛选和优化,在MySQL ...

最新文章

  1. 在智能家庭用OpenCV实现人员检测
  2. 《Cacti实战》——导读
  3. web 中防止sql注入
  4. 大数据DDos检测——DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然! 和一个句子的分词算法CRF没有区别!...
  5. go语言的rune类型
  6. 【算法设计与分析】Dijskra算法代码:Java版
  7. where is argument in check callback passed by framework - SAP UI5学习笔记
  8. python 向量取整数_随机整数向量| 使用Python的线性代数
  9. 第二节 数值、字符与字符串
  10. DIP 电源跌落瞬时中断(Voltage dips)
  11. zipArchive not found
  12. codeblocks安装包和主题及中文语言包百度云下载
  13. 台式计算机没有外放声音,台式电脑外放无声音怎么办
  14. 有关于计算机技术节日名称,三月份有关计算机的节日
  15. android app如何后台自启动,商家骑手端允许后台运行APP设置方法(安卓)
  16. echarts+echarts-gl vue2制作3D地图+下钻功能+标记点功能,解决dblclick事件失效问题,解决地图下钻后边框不更新保留问题
  17. 100 个网络基础知识普及,看完成半个网络高手
  18. ogm 算法_如何在Windows Vista中播放.OGM视频文件
  19. esp8266-01s控制继电器开关
  20. nexus私库中的releases与snapshots区分

热门文章

  1. http协议进阶(三)http报文
  2. WebClient UI和Tomcat的启动器
  3. sharepoint性能优化
  4. Linux 学习手记(1):命令行BASH的基本操作
  5. linux小脚本批量添加/删除用户
  6. SoapUi测试,测试相关问答知识
  7. JavaScript 函数创建思想
  8. curl命令具体解释
  9. 30个在线学习设计与开发的站点
  10. 冒泡 MS Azure 不便宜。。。