学软件技术,读第一手资料,去官方网站:MySQL 5.7参考手册
也可以看看比较经典的书籍,如《高性能MySQL》等
(1)最上层的服务是连接/线程处理,很多基于网络的客户端/服务器的工具都有类似的架构。这一层用来做连接处理、授权认证、安全等。
MySQL服务器上维护了一个线程池/连接池,避免为每个连接都创建销毁一个线程。线程用来处理客户端的请求/连接。
(2)第二层,MySQL的核心服务都在这一层。查询解析(解析成MySQL内部数据结构“解析树”)、分析、优化(比如重写查询,表的读写顺序,使用什么索引)、缓存以及所有的内置函数(日期、时间、数学等),存储过程、触发器、试图等。
对于SELECT语句,在解析查询前,服务器会先检查查询缓存,如果能在其中找到对应的查询结果,则无需再进行查询解析、优化等过程,直接返回查询结果。
(3)第三层,包含存储引擎。存储引擎负责MySQL中数据的存储和提取。服务器通过API和存储引擎进行通信。存储引擎API包含几十个底层函数,用于执行如“开始一个事务”或者“根据主键提取一行记录”等操作。