1.mysql逻辑架构

一.基础架构

image-20210415110040543

MySQL体系结构图

1.连接层

连接层负责接受连接、协议解析、授权验证。

2.服务层

mysql核心层,负责sql语句的解析、优化、查询缓存。所有的跨引擎功能在这里实现:存储过程、触发器、视图。

3.存储引擎层

数据的存储和读取。上层通过API与其交互,屏蔽了引擎差异。

二.线程模型

1.no thread模式

所有连接在主线程处理,并发低。

2.one connection per thread

主线程接受连接,验证通过后,为连接分配一个工作线程。工作线程负责连接的sql语句分析、优化、执行。大量连接会导致内存占用高,不断的线程切换,连接的创建销毁会导致线程的创建销毁。

3.thread pool

img
线程池分为多个group,主线程接受连接,验证通过后,将连接放入到group中。
group的lisenter线程负责group管理的连接网络事件的监听(epoll_wait),当连接有请求到来时,读取请求放入到队列中,group工作线程会从队列中取出一个请求执行。
thread pool有点是n个连接复用m个工作线程,。可以很好的控制线程数量。解决高并发时one connection per thread模式创建大量thread问题。
请求排队执行导致连接的锁释放慢,所以对于已经加锁的连接后续请求放入优先队列中。可以更快的释放锁资源,减少并发竞争。

三.连接池 + 线程池

连接池复用连接降低了连接的创建和销毁。请求进行排队处理,缓存了应用对mysql server的冲击压力。连接池控制了mysql server线程数量,复用工作线程。

四.执行流程

MySQL工作流程图

参考:
高性能mysql
https://www.cnblogs.com/cchust/p/4510039.html
https://blog.csdn.net/zhou307/article/details/104117585

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值