我们来学mysql -- EXPLAIN之ref(原理篇)

EXPLAIN之ref

题记

  • 书接上文《 EXPLAIN之type》
  • 2024美国大选已定,川普剑登上铁王座,在此过程中出谋划策的幕僚很重要,是他们决定了最终的执行计划
  • 在《查询成本之索引选择》中提到,explain的输出,就是优化器 (幕僚)选择的执行计划
  • 除了SELECT开头的查询,DELETE、INSERT、UPDATE也都有执行计划,这里只关注SELECT
  • 从输出的计划中可见很多字段,传达了什么样的信息,接下来看ref

ref

  • 首先友情提示,不要和type字段 的ref值(ref访问方法)弄混淆

  • 但 和访问方法是有关联的,但又不是所有的都有关联

    • 当type是 const
      EXPLAIN SELECT * from ucoding WHERE k2 IN ('6')

    • 当type是 ref
      EXPLAIN SELECT * from ucoding WHERE k1 = '6'

      EXPLAIN SELECT * from ucoding t1 join icoding t2 WHERE t1.k1 = t2.i_k1
      EXPLAIN SELECT * from ucoding t1 join icoding t2 on t1.k1 = UPPER(t2.i_k1)

    • 当 type是 eq_ref、unique_subquery、index_subquery,看执行计划ref列的值,就能知道使用了索引,索引匹配的是啥

  • 见了如上的列子,估计心里有那么点感觉了

    • ref列展示的就是与索引列进行等值匹配 的是啥东西
      • 使用等号操作符
      • 使用了索引列
    • 是啥东西呢?
      • 是常数
      • 是某个列
      • 是函数
相关推荐
IvorySQL5 小时前
PostgreSQL 日报|修复截断 zstd 备份检测(10 月 9 日)
数据库·postgresql
刘胡子大叔5 小时前
SQL 脚本的导入顺序
数据库·sql
代码什么用6 小时前
Spring对IoC的实现
数据库·spring
hz567898 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC8 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
程序员Sunday8 小时前
MySQL 为什么使用 B+ 树索引?把范围查询、回表和覆盖索引连起来
数据库·mysql
半杯咖啡半行码8 小时前
Qt开发实战:数据库、MV 模式、QProcess与串口通信全攻略
数据库·qt
Yyyyyy~8 小时前
[ Mysql ] 库的操作
mysql
小米里的大麦9 小时前
16 MySQL 事务
数据库·mysql
西柚小萌新9 小时前
【LLM&&AI应用开发 八股文】--4.3.Agent智能体(下)
java·开发语言·数据库