1. 客户端发出请求,首先与服务器上的MYSQL进行链接。
2. MYSQL会判断客户端发来的请求语句是否已存在缓存,当缓存存在且没过期,直接返回缓存数据。
3. 当缓存不存在时,MYSQL利用解析器将客户端请求进行解析、分析所有的内置函数并进行缓存。存储过程、视图、触发器都在这一步进行处理。
4. 将3中的执行结果交给优化器,优化器在优化后交给对应的存储引擎进行处理。
5. 将存储引擎的结果返回给客户端,并对数据进行缓存。
服务器是通过API与存储引擎通信的。 每个存储引擎都有自己的优劣势。而统一的API接口让引擎之间的差异得到屏蔽。从而实现存储引擎对上层的透明与兼容性。
存储引擎包含了几十个API底层函数,诸如“开始一个事务”,“根据主键提取一条记录”等操作。但存储引擎不会解析SQL语句。(Innodb是个例外,因为有外键)
不同的存储引擎之间不会相互通信,存储引擎只负责响应上层的请求。