zoukankan      html  css  js  c++  java
  • 一条sql的执行流程

    假如在MySQL中有一个查询会话请求,那么大概流程如下:

    (1)MySQL客户端对MySQLServer的监听端口发起请求。

    (2)在连接者组件层创建连接、分配线程,并验证用户名、密码和库表权限。

    (3)如果打开了query_cache,则检查之,有数据直接返回,没有继续往下执行。

    (4)SQL接口组件接收SQL语句,将SQL语句分解成数据结构,并将这个结构传递到后续步骤中(将SQL语句解析成MySQL认识的语法)。

    (5)查询优化器组件生成查询路径树,并选举一条最优的查询路径。

    (6)调用存储引擎接口,打开表,执行查询,检查存储引擎缓存中是否有对应的缓存记录,如果没有就继续往下执行。

    (7)到磁盘物理文件中寻找数据。

    (8)当查询到所需要的数据之后,先写入存储引擎缓存中,如果打开了query_cache,也会同时写进去。

    (9)返回数据给客户端。

    (10)关闭表。

    (11)关闭线程。

    (12)关闭连接。


  • 相关阅读:
    线程安全
    Kafka分区原理图
    Zookeeper02
    Zookeeper01
    kafka01
    20170623_oracle_SQL
    20170623_oracle备份和恢复_常见问题
    20170623_oracle基础知识_常见问题
    数字类型入门
    数据类型基础
  • 原文地址:https://www.cnblogs.com/wlphp/p/13382006.html
Copyright © 2011-2022 走看看