服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

慢查询应该怎么去合理优化

日期: 来源:肉眼品世界收集编辑:鸭血粉丝Tang

阿粉昨天把这个怎么把 SQL 是否命中是索引,以及把如何开启开启慢查询的方法已经分享给了大家,接下来我们就得分项一下,我们找到了自己的慢查询的 SQL ,那就应该想办法去优化,怎么能去优化自己的慢查询呢?

索引和慢查询

如何判断是否为慢查询?

MySQL判断一条语句是否为慢查询语句,主要依据SQL语句的执行时间,它把当前语句的执行时间跟 long_query_time 参数做比较,如果语句的执行时间 > long_query_time,就会把这条执行语句记录到慢查询日志里面。long_query_time 参数的默认值是 10s,该参数值可以根据自己的业务需要进行调整。

这个 long_query_time 是阿粉昨天说过的,开启慢查询日志,就能查询到。

我们这个时候已经找到了我们的慢查询的语句,接下来是不是就应该看看我们写的这个 SQL 是否命中了我们的索引呢?

如何判断是否应用了索引?

这不就用到阿粉上一篇文章中的一个语句了,

explain

直接通过 explain 来分析查看,检查结果中的 key 值,是否为NULL。

如果没有出现自己创建的索引,那么很肯定,这个 SQL 是没有走我们创建的索引的,那么他不慢 谁慢呢?

接下来阿粉给出一个 SQL ,看一下它是否会命中我们的索引呢?

select * from user where id > 2 ;

是否命中索引呢?

我们也都知道 ID 如果是主键的话,那么一定是有索引的,而这个 SQL 是否能命中索引,就得看你是怎么写的,我可以告诉大家,这个语句,确实命中了索引,但是索引并没有起作用。

为什么呢?

虽然使用了索引,但是还是从主键索引的最左边的叶节点开始向右扫描整个索引树,进行了 全表扫描,此时索引就失去了意义。

而像 select * from user where id = 2; 这样的语句,才是我们平时说的使用了索引。它表示的意思是,我们使用了索引的快速搜索功能,并且有效地减少了扫描行数。

其实在这里,阿粉只想诠释一个事情,那就是查询是否使用索引,只是表示一个SQL语句的执行过程;而是否为慢查询,是由它执行的时间决定的,也就是说是否使用了索引和是否是慢查询两者之间没有必然的联系。

我们在使用索引时,不要只关注是否起作用,应该关心索引是否减少了查询扫描的数据行数,如果 扫描行数减少了,效率才会得到提升。对于一个大表,不止要创建索引,还要考虑索引过滤性,过 滤性好,执行速度才会快。

怎样提高索引的过滤性能呢?

假如有一个5000万记录的用户表,通过sex='男'索引过滤后,还需要定位3000万,SQL执行速度也 不会很快。其实这个问题涉及到索引的过滤性,比如1万条记录利用索引过滤后定位10条、100 条、1000条,那他们过滤性是不同的。索引过滤性与索引字段、表的数据量、表设计结构都有关 系。

这就要让我们具体的 SQL 具体的分析了,尽量能给我们的 Where 条件上面,增加索引,不管是普通索引还是联合索引,尽量的把自己的索引建立在你能命中的情况下。

慢查询是怎么导致的

慢查询原因:

  • 全表扫描:explain分析type属性all
  • 全索引扫描:explain分析type属性index
  • 索引过滤性不好:靠索引字段选型、数据量和状态、表设计
  • 频繁的回表查询开销:尽量少用select *,使用覆盖索引

所以你知道慢查询应该怎么去优化了么?


推荐阅读:

世界的真实格局分析,地球人类社会底层运行原理

不是你需要中台,而是一名合格的架构师(附各大厂中台建设PPT)

企业IT技术架构规划方案

论数字化转型——转什么,如何转?

华为干部与人才发展手册(附PPT)

企业10大管理流程图,数字化转型从业者必备!

【中台实践】华为大数据中台架构分享.pdf

华为的数字化转型方法论

华为如何实施数字化转型(附PPT)

超详细280页Docker实战文档!开放下载

华为大数据解决方案(PPT)


相关阅读

  • VsCode 各场景高级调试技巧!

  • 来源:网络人生苦短,快学Python!VsCode自从诞生以来,以其各自优异的特性迅速走红。尤其是对于前端开发小伙伴来说,几乎成为必不可少的开发工具。所以,熟练掌握VsCode的各自使用技巧
  • 如何写好 Python 的 Lambda 函数?

  • 当你需要完成一件小工作时,在本地环境中使用这个函数,可以让工作如此得心应手,它就是Lambda 函数。Lambda 函数是 Python 中的匿名函数。有些人将它们简称为lambdas,它们的语法
  • 【免费资料】2023人事工作规划资料包

  • 2023年的人力资源工作大家有开始规划吗?今天小智带来了《人力资源战略规划资料包》内含:4套人力资源规划PPT+20份人事规划方案与表格助力更好的完成23年规划 资 料 包 展 示
  • 【招才引智】日照经开区第五场专场招聘来了!

  • 招聘啦、招聘啦!!为加大人才引进力度促进各类人才求职就业帮助企业解决用工问题“智汇经开 职等你来”日照经开区2023年“天天有岗位 月月有招聘”第五场专场招聘会 将于2月1
  • 森兰万安里最新户型约95-147平3-4房预备入市!

  • 最新消息!浦东高行纯新盘,地铁6号线旁,森兰万安里预备入市,主推建面约95-147㎡3-4房,联动价7.03万/㎡!最新全套户型图独家首发:(户型设计过程稿件仅供参考,以开发商正式公示为准)森兰
  • 上海买房的五个方向,不会买错的五个方向

  • 扫码进群 购房交流群楼市动向|答疑解惑悄悄话致我们亲爱的用户,虽然我们致力于力求提供准确可靠的信息,然而我们有限的力量无法完全应对这瞬息万变的楼市。纰漏之处还请海涵!

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 慢查询应该怎么去合理优化

  • 阿粉昨天把这个怎么把 SQL 是否命中是索引,以及把如何开启开启慢查询的方法已经分享给了大家,接下来我们就得分项一下,我们找到了自己的慢查询的 SQL ,那就应该想办法去优化,怎么
  • 新疆阿勒泰:重大项目签约总额近600亿元

  • 新春新气象,击鼓又催征。近日,记者从地区商务局了解到,今年以来,地区围绕特色优势产业谋划打造招商引资项目,把招商引资作为项目建设的源头活水,为地区高质量发展打下坚实基础。连
  • 直接电催化氨氧化为氮气

  • 论文信息:https://pubs.acs.org/doi/10.1021/acs.inorgchem.2c04440第一作者:候静通讯作者:康鹏通讯单位:天津大学 全文速览 直接电催化氨氧化反应(eAOR)由于其节能、环保、可持