本节书摘来自华章出版社《MySQL DBA修炼之道》一书中的第1章,第1.3节,作者:陈晓勇,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.3 查询执行过程概述
图1-2抽象化地描述了客户端和数据库交互的过程。
图1-2 客户端与数据库交互抽象架构图
如图1-2所示,客户端(Clients)发布查询的流程如下,首先连接MySQL(Connection Handling),然后发布查询,如果缓存(Query Cache)中有结果集,则直接返回结果集。如果结果没有被缓存,那么,MySQL解析查询(Parser)将通过优化器(Optimizer)生成执行计划,然后运行执行计划通过API(Pluggable Storage Engine API)从存储引擎获取数据,并返回给客户端。
什么是执行计划(查询计划)呢?执行计划就是一系列的操作步骤。SQL是声明性语言,它只告诉数据库要查询什么,但并不告诉数据库如何去查。数据库所要做的就是基于算法和统计信息计算出一条最佳的访问路径。这个工作是由优化器来完成的。优化器会比较不同的执行计划,然后选择其中最优的一套。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。