SQL优化——从另一个角度讲一下慢SQL的原因

目录

一、概要

二、sql查询执行流程

三、连接数过小

四、Buffer Pool太小

四、小结


一、概要

       对于每一个后端开发者来说,不管是工作还是在面试过程中,SQL的性能优化都是一个特别常见的问题,看似简单,但是在遇到这种问题,真正的能把这个问题处理好,都是一件不是那么容易的事情,遇到慢sql,大家常规的操作,就是从索引入手,看执行计划,但是通常情况下,在开发方案阶段,数据库表的索引设计,都是经过评审过的,而且都有比较完成的开发规范,比如不能直接select * from 表名,in中的值不能太多等。所以本篇文章以Mysql为例,从另一个角度排查一下慢sql的原因,希望通过这篇文章可以帮助到大家。

二、sql查询执行流程

       首先我们要清楚sql查询的执行流程,这样才能更好的理解导致sql查询慢的原因,以mysql为例来讲一下sql查询的执行流程。我们的springboot应用在执行一个sql查询之前,要先给数据库建立一个网络连接,如果只有一个连接,连接建立成功后,springboot应用程序会通过网络连接把要执行的查询sql发给mysql,mysql接收到查询sql后,先通过分析器检查sql是否有语法错误,然后给到优化器,优化器会根据一些规则,来判断使用哪个索引,最后执行器会调用存储引擎(目前mysql默认的存储引擎为InnoDB),因为读写磁盘比较慢,InnoDB里加了一层内存,也就是Buffer Pool,Buffer Poo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个不懂技术的架构狮

你的鼓励就是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值