mysql 架构
2019-11-08 本文已影响0人
任嘉平生愿
MySQL物理架构
MySQL逻辑架构
mysqld:
MySQL服务器守护程序,在后台运行。它管理着客户端请求。mysqld是一个多线程的进程,允许多个会话连接,端口监听连接,管理MySQL实例
Parser
检测SQL语句语法,为每条SQL语句生成SQL_ID,用户认证也发生在这个阶段
Optimizer
创造一个有效率的执行计划(根据具体的存储引擎)。它将会重写查询语句。
key cache
缓存表索引。MySQL keys是索引。
SQL执行过程
InnoDB存储引擎架构
TABLESPACE
InnoDB存储空间被切分成tablespace,tablespace是一个与多个数据文件相关联的逻辑结构。
Pages
InnoDB最小的数据存储单元被也称作块。默认的页框是16KB,一个页包含多行。
可用页大小: 4kb,8kb,16kb,32kb,64kb
配置变量名 : innodb_page_size,在初始化mysqld时配置
Extents
一组页组成一个区,InnoDB为了更好的I/O吞吐率,每次读写都是按照区为单位。
一组16KB的页,一个区可以1MB,双写缓冲区(Doublewrite buffer )每次分配/读/写都是以区为单位。
Segments
4个区构成一个Segments
InnoDB存储引擎特性
ACID事务支持
行锁模式
事务REDO&UNDO支持
多数据文件
逻辑对象结构(InnoDB数据和日志缓冲区)
InnoDB数据是百分百的具备逻辑结构,数据物理存储。
InnoDB读取物理数据,创建逻辑结构[Blocks and Rows]
逻辑存储称为TABLESPACE
事务的隔离性由锁机制实现,原子性、一致性和持久性由事务的redo 日志和undo 日志来保证