Connectors
IPC是基于socket tcp的Mysql protocol,可通过C、Python等SDK接口通信
Connection Management
管理客户端链接,每一个连接绑定一个线程,在这个线程中执行所有sql操作。采用缓存线程或者使用线程池的机制。使用sql操作前,需要认证的内容包括用户名、主机名、密码、SSL或者TLS的方式的证书认证。
SQL Interface
MySQL支持DML(数据操作语言)、DDL(数据定义语言)、存储过程、视图、触发器、自定义函数等多种SQL语言接口。
Parser
解析SQL语句,并为其创建语法树,根据数据字典丰富查询语法树,还会对SQL操作进行语法上的优化,进行查询重写。
Optimizer
根据语法树和数据的统计信息对SQL进行优化,包括决定表的读取顺序、选择合适的索引等,最终生成SQL的具体执行步骤。这些具体的执行步骤里真正的数据操作都是通过预先定义好的存储引擎API来进行的,与具体的存储引擎实现无关。
Caches & Buffers
用来缓存之前操作过的SQL语句的执行结果,如果能够在其中找到对应的查询结果,那么就不必再进行查询解析、优化和执行的整个过程了。
Pluggable Storage Engine
存储引擎的具体实现,这些存储引擎都实现了MySQL定义好的存储引擎API的部分或者全部。存储引擎负责在文件系统之上,管理表的数据、索引的实际内容,同时也会管理运行时的Cache、Buffer、事务、Log等数据和功能。
File System
以文件的方式存储所有数据:数据库、表的定义,表的每一行的内容,索引。InnoDB也支持不使用文件系统直接管理裸设备。
在文件系统之下,可以使用本地磁盘、DAS、NAS、SAN等各种存储系统。