mysql查询执行流程
查询流程图
- 查询缓存,判断 sql 语句是否完全匹配,再判断是否有权限,两个判断为假则到解析器解析语句,为真则提取数据结果返回给用户。
- 解析器解析。解析器先词法分析,语法分析,检查错误比如引号有没闭合等,然后生成解析树。
- 预处理。预处理解决解析器无法决解的语义,如检查表和列是否存在,别名是否有错,生成新的解析树。
- 优化器做大量的优化操作。
- 生成执行计划。
- 查询执行引擎,负责调度引擎获取相应数据
- 返回结果。
查询流程图
- 查询缓存,判断 sql 语句是否完全匹配,再判断是否有权限,两个判断为假则到解析器解析语句,为真则提取数据结果返回给用户。
- 解析器解析。解析器先词法分析,语法分析,检查错误比如引号有没闭合等,然后生成解析树。
- 预处理。预处理解决解析器无法决解的语义,如检查表和列是否存在,别名是否有错,生成新的解析树。
- 优化器做大量的优化操作。
- 生成执行计划。
- 查询执行引擎,负责调度引擎获取相应数据
- 返回结果。