【MySQL】架构体系概览

本文使用的MySQL版本是8.0

MySQL架构

​MySQL架构整体由外部程序和MySQL服务器构成。其中内部服务器分成连接层,服务层,服务管理和公共组件,存储引擎层和文件系统层。


连接层

连接层的作用是处理客户端的连接。

网络端口

一台MySQL服务器可以监听多个网络端口上的客户端连接。MySQL默认开启的是3306这个端口,可以在配置文件中修改添加多个端口。

连接管理线程

通过连接管理器线程处理端口上的客户端连接请求有以下几个场景:

  • 对于所有平台:一个管理器线程就能处理所有的TCP/IP连接请求。
  • 对于所有平台:可以额外开启一个端口用来管理TCP/IP连接请求。
  • 对于Unix:一个管理器线程还可以处理其他的Unix Socket连接请求。
  • 对于Windows:一个管理器线程处理Shared-memory方式的连接请求,另一个管理器线程处理Named-pipe方式的连接请求。

当连接管理线程收到请求后,它就会把连接请求转发到执行线程。

执行线程

一个执行线程处理一个连接请求。这里使用了池化技术来减少线程的创建与销毁。

当一个请求要处理时,先从线程池中查找是否有可用的线程:如果没有就创建一个来处理连接,当处理结束后,如果线程池没有满,就放入池中后面在用。通过下面几个系统变量和状态变量能控制连接管理线程。

  • 系统变量 thread_cache_size 决定了线程池的大小。默认情况,服务器每次启动时会自动调整这个值,也可以通过选项文件来具体指定,值为0就是禁用缓存池,这样有一个连接就创建执行线程,断开连接后就释放线程。
  • 系统变量 thread_stack=N 来调整线程堆栈的大小,为了应对复杂SQL的深层递归。
  • 状态变量 Threads_cached 来查看线程数,Threads_created 超过线程数后创建的线程数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值