mysql查询优化

本文介绍了MySQL客户端和服务端之间的通信方式及其特点,并详细讲解了查询缓存的工作原理及查询优化的过程,包括SQL解析、预处理及执行计划的生成等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

阶段一、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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值