一条查询语句的执行流程
-
建立连接,通过客户端/服务器通信协议与MySQL建立连接。MySQL 客户端与服务端的通信方式是半双工 。对于每一个 MySQL 的连接,时刻都有一个线程状态来标识这个连接正在做什么。
通讯机制:
- 全双工:能同时发送和接收数据
- 半双工:指的某一时刻,要么发送数据,要么接收数据,不能同时。
- 单工:只能发送数据或只能接收数据。
线程状态:
show processlist; //查看用户正在运行的线程信息
- id:线程ID,可以使用kill xx;
- user:启动这个线程的用户
- Host:发送请求的客户端的IP和端口号
- db:当前命令在哪个库执行
- Command:该线程正在执行的操作命令
- Create DB:正在创建库操作
- Drop DB:正在删除库操作
- Execute:正在执行一个PreparedStatement
- Close Stmt:正在关闭一个PreparedStatement
- Query:正在执行一个语句
- Sle