阶段一、mysql客户端/服务通信
mysql客户端与服务端的通信方式是 “半双工”;
mysql通讯特点和限制:
a)客户端一点开始发送消息另一端要接收完整个消息才能响应;
b)客户端一旦开始接收数据没法停下来发送指令
查看命令 show processlist
a) sleep 正在等待客户端发送数据
b)Query 连接线程正在执行查询
c)Locked 线程正在等待锁的释放
d)sorting result 线程正在对结果进行排序
e) sending data 向客户端返回数据
对于出现问题的连接可用过kill(id) 的方式进行连接的杀掉
阶段二、查询缓存
工作原理:缓存SELECT的结果集和SQL语句
阶段三、查询优化处理
a) 解析sql
b 预处理阶段
c)查询优化器找到最优执行计划
总结:
通过 EXPLAIN + SQL 来查看执行计划,分析SQL来优化SQL,比如说最左匹配原则,常用的列放在最左,使用离散性高的列作为索引.
执行计划 - type
sql查询优化中有一个很重要的指标,结果值从好到坏依次是:
system -> const -> eq_ref ->ref ->range -> index -> ALL