MySQL的组件以及内部的调用流程
只是我个人对MySQL执行流程的一些理解,不代表MySQL的物理结构就是这样的。
数据连接池:
MySQL内部也有一个数据库连接池,管理数据库系统和各个外部系统的连接。
线程:
线程会从连接池里面取一个执行SQL的请求出来,然后调用SQL接口,调用的同时,传入SQL语句。
SQL解析器:
SQL接口调用SQL解析器,让解析器将SQL解析成为数据库能理解执行的语句。
查询优化器:
SQL解析器解析完成后,就会调用查询优化器,选择最后的查询路径,生成查询计划。
执行器:
有了查询计划,执行器就会调用数据引擎的各种接口来真正执行数据库的存取,完成查询任务。
数据引擎:
Inno DB等,去访问内存或者硬盘的数据,进行实际的物理数据的交互。
整个流程大致如下图所示:
架构图
