简介:想要学好一门技术,最基本的要求是摸清其原理和作用。学习MySQL也是如此,只有清晰的理解SQL语句执行的整个过程,才能更好的进行SQL的编写和优化。平时我们使用最多SQL语句类型是DQL和DML,今天我们主要介绍的是查询 ...
想要学好一门技术,最基本的要求是摸清其原理和作用。学习MySQL也是如此,只有清晰的理解SQL语句执行的整个过程,才能更好的进行SQL的编写和优化。 平时我们使用最多SQL语句类型是DQL和DML,今天我们主要介绍的是查询语句。 首先,当MySQL收到一个请求时,它到底会如果执行?
MySQL基本架构通过上图我们可以看出,Server层包括连接管理、权限验证、查询缓存、语法分析、查询优化等MySQL的核心服务功能,下面将一一介绍各个模块的功能。 连接器主要负责建立连接和管理连接,校验用户权限等。 解析器进行词法分析,语法分析后生成解析树。 预处理器处理解析器无法分析的语义,检查用户对目标数据的权限等,生成新的解析树。 优化器如同它的名字一样,它会尽可能选择最优的路径获取数据。 执行器获取表的基础结构信息,根据不同的存储引擎调用对应接口获取数据。 要点总结
了解了整体的执行流程之后,我们来看看查询语句的解析顺序。 SELECT语句解析顺序通常来讲,我们一个查询语句会写成这样: 那么是不是就意味着程序会按照我们写的关键字顺序去执行,显然不是! 程序实际上是这么执行的: 大致分为以下三步执行: 第一步:确定从哪获取数据; 第二步:执行各种过滤条件; 第三步:选择符合条件的数据; 看出可以程序找到数据后会一步步进行过滤,最后只返回符合条件的记录,整个过程非常自然。 尾声时间仓促,难免有所疏漏,但是希望你读完之后对于SQL查询过程有宏观的理解,如果有问题,欢迎在下方进行留言。 参考书籍:
本文仅代表作者个人观点,不代表巅云官方发声,对观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员,邮箱2522407257@qq.com。更多相关资讯,请到巅云www.yinxi.net学习互联网营销技术请到巅云建站www.yx10011.com。 |