1、连接发往连接管理器;
2、连接管理器调用线程管理器,复制生成一个连接线程,响应用户请求;
3、由用户模块完成用户的授权和检查;(除非断开,否则回话会处于循环状态)
4、如果用户发送命令,则会到达命令派发器;
5、如果是查询请求,则发往查询请求,看缓存是否能命中,如果能命中,则将结果返回,并且记录日志;
6、如果缓存没有命中,则语句会发往分析器,由分析器完成语法分析、词法分析等,然后可以转换为存储引擎可以执行的语句;
7、优化器根据状态报告模块的报告,生成最有的访问路径,本次优化的结果也会报告给状态报告模块记录结果;
8、如果是修改语句,则由表修改模块执行;
9、如果是表维护语句,则由表维护模块运行;
10、复制模块实现跨实例的复制;
11、访问控制模块检查用户是否有访问权限;
12、如有权限,则交给表管理器,然后把用户请求转换为存储引擎可以执行的语句;
13、由特定的存储引擎加载文件和执行;(所以存储引擎是表级别的)
本文出自 “Unix-like” 博客,请务必保留此出处http://alipay.blog.51cto.com/7119970/1728416
原文地址:http://alipay.blog.51cto.com/7119970/1728416