mysql体系架构

1.支持接口 :指通过各种语言可与mysql进行交互

2.连接池 :

mysql的工作流程:

1.mysql客户端向服务器发送用户连接请求,该请求被发送到连接管理器,连接管理器是一个侦听器用于真挺来自客户端的连接,用户请求接收后,一个用户请求需要一个线程来相应,线程管理器负责给用户创建生成新的线程。用户连接进来后需要对用户的权限进行验证,验证由用户模块负责管理

2.连接上以后,可以发送sql语句,不同的语句分配给不同的解析器,这由命令分发模块完成,若命令在分发前是一个查询语句,而缓存中有内容,就可以直接返回结果给用户,因此也有可能与缓存模块进行交互;当用户发送一个命令请求资源后,会被记录在日志中,命令分发模块也可以和日志模块交互

3.如果缓存中没有需要的结果,就把命令分发出去交给解析器,由解析器判断命令属于哪种语句;如果是select语句就由优化器优化,若是update,insert,delete语句就交给表定义模块;无论哪个模块,用户最终要完成操作必须检查是否具有权限,所以这些命令最终要交给访问控制模块,用于检验客户端用户的操作是否具有足够的操作权限,来执行请求操作如果访问模块检查后发现没有任何问题,会把这些命令语句交给另一个组件表管理器,由表管理器完整真正意义上的操作,表管理器负责创建、读取或修改表定义文件的。表管理器交给存储引擎(存储引擎的接口),存储引擎交给最核心的-->MYISAMINnoDB