- msql执行查询的步骤:
-
客户端/服务端通信协议
他们之间的通信协议是“半双工”的,这就意味着在任意的时刻,要么是服务端向客户端发数据,要么是客户端向服务端发数据。这两个动作不能同时发生。
-
查询状态
show full processlist
1.sleep
线程等待客户端发送请求
2.query
线程正在执行查询,或者正在发送结果。
3.locked
线程正在等待锁
4.Analyzing and statistics
线程正在收集引擎信息 生成执行计划
5.coping to tmp table
正在执行查询,并且结果复制到一张临时表,要么是在做group by 要么是在做 union
6.Sorting result
正在对结果进行排序。
7.sending data
有多重情况:可能在多个状态之间传送数据,或者生成结果,或者紫爱香客户端返回数据。