简介
本章较深入探索Mysql核心机制,Innodb引擎架构,MVCC多版本并发控制、事务支撑、各种级别的锁、Mysql高可用设计等概括梳理。
Mysql组成架构
图片来自网络
在Mysql架构设计中,大概可以分为Mysql server层和存储引擎层。
Server层
server层包含网路连接器、缓存、SQL解析器、SQL优化器、SQL执行器几部分。
一个sql语句在Server层的执行逻辑是怎样的?
看张图:
在Server端,客户端将SQL传入服务端,首先交互的是连接器。
在mysql中,关于服务端连接参数的设置,如:
max_connections 最大连接总数
max_user_connects 单用户的最大连接数
max_connect_error 单用户连接错误最大数
connect_timeout 连接超时时间
都是设置在连接器上的参数并生效。
然后先经过缓存器,查询是否有相同缓存,如果没有再进一步开始解析SQL、优化SQL,然后生成执行计划,选择成本最小的一个计划开始执行,然后由执行器连接底层的存储引擎,最后返回结果并存入缓存。
Innodb存储引擎
现在Mysql主要以Innodb存储引擎为主,因此解析Innodb存储引擎架构。
先略吧!