MySQL Sever - 一条SQL语句的执行流程

一条查询语句的执行流程

MySQL Sever - 一条SQL语句的执行流程_第1张图片

  1. 建立连接,通过客户端/服务器通信协议与MySQL建立连接。MySQL 客户端与服务端的通信方式是半双工 。对于每一个 MySQL 的连接,时刻都有一个线程状态来标识这个连接正在做什么。

    通讯机制:

    • 全双工:能同时发送和接收数据
    • 半双工:指的某一时刻,要么发送数据,要么接收数据,不能同时。
    • 单工:只能发送数据或只能接收数据。

    线程状态:

    show processlist; //查看用户正在运行的线程信息
    MySQL Sever - 一条SQL语句的执行流程_第2张图片

    • id:线程ID,可以使用kill xx;
    • user:启动这个线程的用户
    • Host:发送请求的客户端的IP和端口号
    • db:当前命令在哪个库执行
    • Command:该线程正在执行的操作命令
      • Create DB:正在创建库操作
      • Drop DB:正在删除库操作
      • Execute:正在执行一个PreparedStatement
      • Close Stmt:正在关闭一个PreparedStatement
      • Query:正在执行一个语句
      • Sle

你可能感兴趣的:(MySQL,mysql,server,查询语句,执行流程,查询缓存,解析器,优化器)