天天看点

《MySQL DBA修炼之道》——1.3 查询执行过程概述

本节书摘来自华章出版社《mysql dba修炼之道》一书中的第1章,第1.3节,作者:陈晓勇,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

图1-2抽象化地描述了客户端和数据库交互的过程。

《MySQL DBA修炼之道》——1.3 查询执行过程概述

图1-2 客户端与数据库交互抽象架构图

如图1-2所示,客户端(clients)发布查询的流程如下,首先连接mysql(connection handling),然后发布查询,如果缓存(query cache)中有结果集,则直接返回结果集。如果结果没有被缓存,那么,mysql解析查询(parser)将通过优化器(optimizer)生成执行计划,然后运行执行计划通过api(pluggable storage engine api)从存储引擎获取数据,并返回给客户端。

什么是执行计划(查询计划)呢?执行计划就是一系列的操作步骤。sql是声明性语言,它只告诉数据库要查询什么,但并不告诉数据库如何去查。数据库所要做的就是基于算法和统计信息计算出一条最佳的访问路径。这个工作是由优化器来完成的。优化器会比较不同的执行计划,然后选择其中最优的一套。