Server层按顺序执行sql的步骤为:
- 客户端请求->
- 连接器(验证用户身份,给予权限) ->
- 查询缓存(存在缓存则直接返回,不存在则执行后续操作)->
- 分析器(对SQL进行词法分析和语法分析操作) ->
- 优化器(主要对执行的sql优化选择最优的执行方案方法) ->
- 执行器(执行时会先看用户是否有执行权限,有才去使用这个引擎提供的接口)->
- 去引擎层获取数据返回(如果开启查询缓存则会缓存查询结果)
简单概括:
- 连接器:管理连接、权限验证;
- 查询缓存:命中缓存则直接返回结果;
- 分析器:对SQL进行词法分析、语法分析;(判断查询的SQL字段是否存在也是在这步)
- 优化器:执行计划生成、选择索引;
- 执行器:操作引擎、返回结果;
- 存储引擎:存储数据、提供读写接口。