mysql 查询执行的流程

1、客户端发送一个请求给服务器。
2、服务器先检查查询缓存,命中了缓存,直接返回缓存中的数据,否则进入下一个阶段。
3、服务器进行sql解析,预处理,再由优化器生成对应的执行计划。
4、mysql根据执行计划,调用存储引擎的API来执行查询
5、将结果返回给客户端。

时间: 2024-10-09 14:11:54

mysql 查询执行的流程的相关文章

图说mysql查询执行流程

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

MySQL查询执行

当我们希望MySQL能够以更高的性能运行查询时,最好的办法就是弄清楚MySQL是如何优化和执行查询的.一旦理解了这一点,很多查询优化工作实际上就是遵循一些原则让优化器能够按照预想的合理方式运行 当我们想向MySQL发送了一个请求时,MySQL到底做了什么: 客户端首先发送一条查询请求给服务器 服务器首先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果,否则进入下一阶段. 服务器端进行SQL解析.预处理,再由优化器生成对应的执行计划 MySQL根据优化器生成的执行计划,调用存储引擎的AP

MySQL查询执行的基础

当希望MySQL能够以更高的性能运行查询时,最好的办法就是弄清楚MySQL是如何优化和执行查询的.一旦理解这一点,很多查询优化实际上就是遵循一些原则让优化器能够按照预想的合理的方式运行. 换句话说,是时候回头看看我们之前讨论的内容了:MySQL执行一个查询的过程.当向MySQL发送一个请求的时候,MySQL到底做了什么. 1 客户端发送一条查询给服务器. 2 服务器首先检查缓存,如果命中缓存,则立即返回存储在缓存的结果,否则进入下一阶段. 3 服务器进行sql解析,预处理,再由优化生成器生成对应

MySQL查询执行路径

1.客户端发送一条查询给服务器2.服务器先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果.3.服务器端进行SQL解析.预处理,再由优化器生成对应的执行计划.4.MySQL根据优化器生成的执行计划,调用存储引擎的API执行查询.5.返回结果给客户端.

使用explain查看mysql查询执行计划

explain语句: 字段解释: type: all(全表扫描) ref() possible_keys: 预测使用什么列做为索引 key: 实际使用的key ref: 参考,引用 rows: 扫描的行数 id: 扫描的行数 extra: 使用什么来定位

步步深入:MySQL架构总览->查询执行流程->SQL解析顺序

前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了. 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识. 一.MySQL架构总览: 架构最好看图,再配上必要的说明文字. 下图根据参考书籍中一图为原本,再在其上添加上了自己的理解. 从上图中我们可以看到,整个架构分为两层,上层是MySQLD的被称为的‘SQL Layer’,下层是各种各样对上提供接口的存储引擎,被称为‘Storage Engin

MySQL架构总览->查询执行流程->SQL解析顺序

前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了. 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识. 一.MySQL架构总览: 架构最好看图,再配上必要的说明文字. 下图根据参考书籍中一图为原本,再在其上添加上了自己的理解. 从上图中我们可以看到,整个架构分为两层,上层是MySQLD的被称为的'SQL Layer',下层是各种各样对上提供接口的存储引擎,被称为'Storage Engin

mysql查询流程

转自:http://www.cnblogs.com/annsshadow/p/5037667.html 前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了. 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识. 一.MySQL架构总览: 架构最好看图,再配上必要的说明文字. 下图根据参考书籍中一图为原本,再在其上添加上了自己的理解. 从上图中我们可以看到,整个架构分为两层,上层是MySQLD的

MySQL 查询缓存

MySQL查询执行流程 查询流程: 客户端发送一条查询给服务器: 服务器先检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果:否则,进入下一阶段: 服务器进行SQL解析.预处理,再由优化器生成对应的执行计划: MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询: 将结果返回给客户端: 查询缓存 用于保存MySQL查询语句返回的完整结果,被命中时,MySQL会立即返回结果,省去解析.优化和执行等阶段: MySQL保存结果于缓存中,把select语句本身做hash计算,计算的