跳到主要内容

第2章 MySQL架构

MySQL体系结构

1. MySQL整体架构

C/S架构模型

MySQL采用经典的客户端/服务器架构,客户端通过TCP/IP协议与服务器通信。服务器端接收客户端请求,处理后返回结果。

1717331700327-45a41f66-166a-4dac-acf1-a3d308ea7722.webp

MySQL实例架构

MySQL实例由以下核心组件构成:mysqld主进程、主线程(Master Thread)、工作线程(IO/SQL/Purge等)以及预分配的内存结构。各组件协同工作,共同提供数据库服务。

1717331700195-4e3a10eb-e082-4b1f-ae97-f1adb615701b.webp

mysqld程序分层原理

MySQL采用分层架构设计,主要分为Server层和Engine层。Server层类似Linux内核层,包含连接器、查询缓存、分析器、优化器、执行器等组件;Engine层类似文件系统,负责数据的实际存储和检索。

1717331700305-e5ee1601-1eb1-41cd-8fd7-2c68027a3e7e.webp

2. MySQL存储架构

逻辑架构

MySQL的逻辑结构设计借鉴了操作系统的文件管理思想。库对应目录,表对应文件,这种映射关系使得数据管理更加直观。正如Linux中一切皆文件,MySQL中一切皆表,一切操作通过SQL实现。

逻辑对象包含:

  • :由库名和库属性(字符集、排序规则等)组成
  • :由列(字段名、数据类型、约束)、行(实际数据记录)和表属性(存储引擎、字符集等)组成

1717331700184-53b5fd0b-fbb7-4cb8-879a-dfe59dddae58.webp

物理架构

MySQL的物理存储采用分层结构,从逻辑操作到物理操作都保证尽可能的连续IO,提高性能。

存储层次结构

  1. 段(segment):一个表对应一个段,由1到N个区构成
  2. 区(extent):又称簇,由64个连续页构成,默认大小1MB
  3. 页(page):MySQL最小IO单元,默认16KB,包含4个OS block
  4. OS block:文件系统块,默认4KB,包含8个扇区
  5. 扇区:磁盘最小物理单元,默认512字节

1717331700371-3621b93b-2815-4888-98a2-9821be6c7259.webp

提示

理解MySQL的体系结构对于后续的性能优化、故障诊断至关重要。建议重点掌握Server层与Engine层的职责划分,以及物理存储的层次结构。