1.最上层的服务器并不是MySql所独有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构、比如连接处理、授权认证、安全等。
2.第二层是MySql比较有意思的部分。大多数MySql的核心服务功能都在这一层,包括查询解析、分析、优化,缓存以及所有的内置函数(例如:日期、时间、数学、和加密函数),所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。
3.第三层包含了存储引擎、存储引擎负责MySql中输出的存储和提取。和GNU/Linux下的各种文件系统一样,每个存储引擎都有它的优势和劣势。服务器通过API与存储引擎进行通信。这些接口屏蔽了不同存储引擎之间的差异,使得这些差异对上层的查询过程透明。存储引擎API包含几十个底层函数,用于执行诸如“开始一个事务”或者“根据主键提取一行记录”等操作。但存储引擎不会去解析SQL(InnoDB是一个例外,它会解析外键定义,因为MySql服务器本身没有实现该功能),不同存储引擎之间也不会相互通信,而只是简单地相应上层服务器的请求。
4.一个MySql数据库可以存在不同的存储引擎,例如当创建一个MySql数据库时,一部分表用MyISAM引擎,另一部分用InnoDB引擎,在创建表的时候,设定引擎的类型即可。因为存储引擎是针对表的。MySql的最大特点就是插件式存储引擎,你用到什么引擎,就制定什么引擎。