MySQL 执行计划和MySQL执行过程

 

 

SQL执行计划

数据库服务器在执行sql语句的时候,会准备几套方案,最后选择消耗资源最小的那个方案

 

MYSQL架构图:

MySQL 执行计划和MySQL执行过程_第1张图片

 

 

MYSQL执行流程

  1. 客户端连接服务器。
  2. 查询缓存。不会直接查询数据库。会从缓存中查看是否存在相同语句的执行计划,如果存在将省略语法检查、语言检查、加锁、权限核对、SQL优化等过程。直接执行SQL语句。(以下为没缓存的情况)
  3. 语法检查。查看SQL语法规则是否OK,如果不OK,返回错误信息给客户端,否则进行下一步操作。
  4. 语义检查。若SQL语法OK,服务器会对SQL中的表,字段属性等内容进行检查。
  5. 确定最佳执行计划。以上均OK后,如果查询语句为SELECT时,服务器进程还是不会直接查询数据库文件,数据库服务优化器会按照一定规则对当前SQL语句进行自我优化(优化成都有限)。当优化器确定好最优执行计划后,会将该执行计划保存到缓存中,方便下次高效查询。
  6. 权限核对(数据访问权限)。如果连接的用户不具备数据访问权限时,将不能够获取倒是数据
  7. 加锁。为保证数据一致性,系统会对需要查询的对象加锁操作
  8. 语句执行。SQL解析完成之后,才会真正执行。如果当前选择执行的数据已被读取到缓冲区,直接返回该数据。如果缓冲区没有,从数据库中读取,病刷新到缓冲区。
  9. 数据提取。语句执行完后,查询的数据其实还在服务器中,需要通过服务器数据提取进程将数据返回到用户客户端。

 

 

 

----------------------------------

你可能感兴趣的:(MySQL,mysql,db)