MySQL深度剖析之MySQL架构(2021)

一 为什么需要数据库连接池

每一个线程都需要通过JDBC驱动去和数据库建立网络连接,然后执行SQL,SQL执行完毕,线程销毁,如果并发量很大的时候,就需要不同的建立网络连接,然后销毁连接,并且建立网络连接也是需要耗时的,所以效率低下。所以使用数据库连接池,可以循环利用数据库连接。

二 数据库MySQL的架构

MySQL服务器架构主要分为三层:应用层、逻辑层和物理层。

应用层:主要负责和客户端进行交互,建立连接,响应请求

逻辑层:主要负责SQL查询、事务管理、恢复等

物理层:主要负责写日志和数据

 

MySQL架构下,大致查询流程:

#1 工作线程从连接器获取SQL数据

#2 工作线程把SQL语句交给SQL接口

#3 SQL接口先从查询缓存看要查询的SQL语句是否命中

查询缓存一般不启用,启用也不会给太大,几十兆就够了,尤其是表增删改比较频繁;另外SELECT语句包含一些变化的函数比如时间戳等也不会缓存

#4 如果没有命中则通过SQL解析器,解析SQL语句,然后将解析的SQL语句根据语法规则构建语法树。

#5 将语法树交给查询优化器,查询优化器可能生成多条执行计划,然后选择最优的一条,或者成本最优的那条数据

#6 SQL执行器执行SQL执行计划,调用存储引擎进行查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

莫言静好、

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

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

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

打赏作者

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

抵扣说明:

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

余额充值