sql 性能优化基于explain调优

文章目录

  • Explain分析?
  • 问题描述
  • 解决方案

Explain分析?

关于Explain具体可以干什么,有哪些优缺点,本博主的文章有写到,这是链接地址: 点击这里查看. 下面来说下Explain在项目实战中,如何去进行优化。

问题描述

简单描述一下问题:今天项目经理安排了一个艰巨的任务,xx去优化一下xx那个查询语句,前端列表显示太慢了,影响客户体验,抱着这个问题,我先去查询了一下后端接口,确定了哪个接口下,便找到了SQL语句贴到了下面,在我还没说怎么优化前,大家可以先去看一下

仔细分析一下这段SQL语句先去进行左连接left join,再去进行内连接inner join,经过反复执行,最终确定了问题,出在了inner JOIN sg_device_relevance b ON c.id = b.member_id 注释或者使用left join查询后,问题一:查询出来的数据不对,问题二:查询速度反而比之前更慢了

解决方案

 SELECT c.id,c.NAME AS 'name',c.sex,c.phone,c.three_tag,c.dept_id,c.region,c.compliance,c.sys_org_code,a.measuring_timeFROM sg_member cLEFT JOINsg_blutdruck_record aON c.id = a.member_id AND a.measuring_time BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW()inner JOINsg_device_relevance bON c.id = b.member_idWHERE 1 = 1and c.sys_org_code = 'A02A01'AND a.id IS NULLGROUP BY c.id

根据上面的SQL,看下我没加索引前的执行结果,查询时间时3秒多,在select前面加上EXPLAIN关键字,分析结果如下,type:代表扫描类型,类型为ALL代表全局扫描,possible_keys:代表应该用到哪些索引,key:代表实际用到的索引, 有些人就开始疑惑了,为什么实际没有用到索引呢,原因是PRIMARY,unique验证唯一值索引,再此处用不上

我这个地方分割一下,继续往下说,一定要讲明白,非常重要这块,不仅在项目中可以用到,面试也常问,不明白的可以私信.

rows:代表检索的数据行数,Extra:代表检索结果,Using index就是用到了索引,很明显这个地方结果返回没有用上,另外type检索类型也是全局检索,type具体有几种类型可以去博文中查询,在本文章上方我贴上文章地址了,这些我都解释完了,下面看下我优化后的查询结果

在这里插入图片描述
优化后

-- 向a表添加索引create index device_relevancekey on sg_device_relevance(member_id)-- 向B表添加索引create index blutdruck_record on sg_blutdruck_record(member_id,measuring_time)

看下这时的type:ref,明显这次没有用全局扫描,C表我没加索引的原因呢是:在此处查询中为主表,看下a和b表,实际用到的索引和应该用到的索引一直,说明用到了索引,Extra:a和b表的扫描结果为Using index,说明索引生效了,查询时间为0.21秒,比刚才快了3秒多注意:这次优化我没有去改SQL,而是加了索引,其实改SQL也可以,但是我这样做呢,其他查询也会同样速度比之前快了很多

本次分享就到这里啦,如果有不明白的地方可以私信本博主,后期会分享更多在项目中遇到的实战技术及问题

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28282.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt在Unity里的开发和原理

chatgpt在Unity里的开发和原理 教学视频 先放上教学视频链接 https://www.reddit.com/r/unity_tutorials/comments/10aic34/chatgpt_with_unity_in_todays_video_i_show_you_a/ https://www.youtube.com/watch?vPRwfHajinSU 语音控制实现unity里的效果 或者语音控制实现Un…

搞不定高考的ChatGPT,原来只有小学4年级水平

夕小瑶科技说 原创 作者 | Python 之前,复旦大学的研究者让ChatGPT参加了中国高考,发现成绩惨不忍睹(参见推送),其中理科数学竟只有20多分。这次,小米AI lab的研究者们给模型降低一下难度,找了…

《聊聊我的故事 | 谈谈自己大学的收获,以及毕业的求职经历》

1.初进校园,实现最初的梦想 还在读高中的时候,心中就非常向往大学的生活,希望自己可以快一点进入大学。记得老师经常对我们说,你们现在辛苦一点,等到进入大学后就会轻松很多了。因此,心中便一直都有一个目…

毕业后的感言

我们毕业了,毕业季分手季。我目睹了那些不舍得眼泪。其实在那个时候我发觉嘴上说自己是一个没心没肺的人是不现实的。我居然也被赤化了。我居然也有心酸,也会难过。甚至对自己的前女友说有点不舍。毕业后祝你幸福! 回首大学,我没有遗憾&#…

毕业季心得

活动地址:毕业季进击的技术er 👉目录 前言学习背景敲下的第一行代码对未来的规划想对大家说的话最后 前言 时光荏苒,转瞬即逝,如白驹过隙一般。在这炎炎盛夏,我们又迎来了毕业季,我是一名在校生&#xff0c…

毕业感言

入学,满怀憧憬。不同的梦想,共同的行动。 大一,木头木脑。队列、口号、训练,身体是父母的,生活是队里的。 大二,徘徊迷茫。游荡在知识的海洋,寻找着未来的方向。 大三,低调做事。…

【毕业季】这四年一路走来都很值得——老学长の忠告

活动地址:毕业季进击的技术er 大家好,我是路飞! 又是一年毕业季,大学四年还没来得及好好体验校园生活,就匆忙收尾了!这四年时光里,有过目标和追求,也有过遗憾和不舍,从四…

关于毕业求职的就业经验-写给我亲爱的校友们

提示:希望下面的文章对大家能有所帮助 文章目录 前言一、毕业季的几种选择?1.考研2.就业3.其他 二、到了毕业季应该怎么去找到自己心怡的工作?三、需要掌握的基本技能(以我嵌入式开发角度)?四、该怎么去跳槽…

博士毕业答辩会上的感言——余子濠

今天余子濠终于博士毕业了! 余子濠是孙凝晖老师和我共同指导的博士生,他这个博士,读了整整八年。 今天的答辩会也是讨论得尤其热烈,答辩委员们提出了很多专业问题,子濠逐一做了解答。整个答辩会持续了130多分钟&#x…

new bing 使用出现“”]Sorry, looks like your network settings are preventing access to this feature.解决方法

1、问题 使用new bing时候如果出现“Sorry, looks like your network settings are preventing access to this feature”,请尝试用以下方案解决 2、解决 1、确保代理的节点在美国 2、在Edge dev中打开“https://www.bing.com/search?q要问的问题&setmktzh-…

又一家AI独角兽上市,AI的春天又来了?

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 时隔两年,云天励飞终于上市了,但前方并非一片平坦开阔地,而是视觉AI竞技场。 刚刚,AI独角兽云天励飞技术股份有限公司(简称:云天励飞)登陆科…

阿里云 OpenSearch 重磅推出 LLM 问答式搜索产品,助力企业高效构建对话式搜索服务

1. 企业专属问答搜索 1.1. 世界知识 vs 企业专属知识 ChatGPT、通义千问正在引领搜索技术变革,其表现出的“什么都懂,什么都能聊”关键是依赖于底座大语言模型(Large Language Model, LLM)中压缩的世界知识。但无论是多强大的LL…

从2023年Q1,看当下的量子产业

光子盒研究院 一旦实现商业化,量子计算将带领人类进入一个全新的领域。 今天,人工智能(AI)、ChatGPT等大语言模型的处理能力受限于芯片有限的表面积:超过一定数量的GPU,每个GPU的批处理量就会变小——进一步增加数量反而会增大成本…

华为ENSP的Stelnet、直连、串口连接、telnet连接登录

华为ENSP设备登录的几种方式 一、直接打开终端窗口,启动设备后,直接双击设备即可,如下图所示: 二、用ENSP中的PC连接线CTL到设备的console登录 步骤1:在左侧的连线中找到CTL线单击(如果没有CTL线说明ENSP…

华为模拟器:ENSP,不同vlan间通信

拓扑图 创建好拓扑后,配置pc电脑的ip地址与网关地址 第三步打开SW1交换机进行vlan划分 这里是进入视图模式下后创建vlan后,进行端口绑定vlan 代码: interface GigabitEthernet 0/0/1 进入端口 port link-type access port default vlan 10 设置access绑定vlan 第二台pc与第…

华为太难了,出海或面临美国新生通信设备商的狙击

据分析机构给出的2021年通信设备市场的数据,美国再次拥有了一家通信设备商,它就是思科,并且思科已成为全球第五大通信设备商,这对于努力寻求出海的华为来说无疑将成为新的阻力。 由于众所周知的原因,华为的通信设备在海…

【教程】华为鸿蒙系统连接代理后无法上网问题的解决方案

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.blog.csdn.net] 以Clash for Android为例。 情景描述 开了代理后,手机无法上网,甚至百度都打不开。关闭代理后,能正常上网。 问题分析 其实是被系统自动关后台活动了。因此只需将…

华为nat,acl简单应用,华为设备实现外网通信

转载至:华为nat,acl简单应用,华为设备实现外网通信_benjaminsBlog的博客-CSDN博客 华为外网通信 acl ,nat 1. 如图所示外网已经实现通信 2. 公网路由器配ip就不说了 3. 首先先做nat转换使内网全部用户可出去公网 命令如下 首先…

ggplot2点图+线性趋势+公式+$R^2$+p值

正文 先看效果。 R语言代码如下&#xff0c; data("faithful") library(ggplot2) p <- ggplot(faithful,aes(xeruptions,ywaiting)) geom_point() stat_smooth(methodlm,formula y~x,colourred)model.lm<-lm(formula waiting ~ eruptions, data faithf…

【Python】均值回归策略回测(日内高频数据)

文章采用均值为SMA(close, time_period 3日)&#xff0c;利用(收盘价 - 三日均线)计算偏离程度。 如果大于阈值(首个收盘价的2%)则开仓买入&#xff08;卖出&#xff09; 如果收盘价穿过均线说明均值偏离情况消失平仓。 文章采用Tick高频数据、也可以切换日收盘价数据进行改…