MariaDB的体系结构和执行流程


wKioL1Z9SB2g2XlHAABxN4QeSFg505.png


1、连接发往连接管理器;

2、连接管理器调用线程管理器,复制生成一个连接线程,响应用户请求;

3、由用户模块完成用户的授权和检查;(除非断开,否则回话会处于循环状态)

4、如果用户发送命令,则会到达命令派发器;

5、如果是查询请求,则发往查询请求,看缓存是否能命中,如果能命中,则将结果返回,并且记录日志;

6、如果缓存没有命中,则语句会发往分析器,由分析器完成语法分析、词法分析等,然后可以转换为存储引擎可以执行的语句;

7、优化器根据状态报告模块的报告,生成最有的访问路径,本次优化的结果也会报告给状态报告模块记录结果;

8、如果是修改语句,则由表修改模块执行;

9、如果是表维护语句,则由表维护模块运行;

10、复制模块实现跨实例的复制;

11、访问控制模块检查用户是否有访问权限;

12、如有权限,则交给表管理器,然后把用户请求转换为存储引擎可以执行的语句;

13、由特定的存储引擎加载文件和执行;(所以存储引擎是表级别的)


你可能感兴趣的:(MariaDB的体系结构和执行流程)