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

news/2024/11/29 0:26:37/

EXPLAIN之ref

  • 题记
  • **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列展示的就是与索引列进行等值匹配的是啥东西
      • 使用等号操作符
      • 使用了索引列
    • 啥东西呢?
      • 常数
      • 某个列
      • 函数

http://www.ppmy.cn/news/1550762.html

相关文章

Linux系统编程学习 NO.12——进程控制、shell的模拟实现

进程创建 在已学习的知识体系下,在Linux系统中创建一个进程可以通过./程序名称 创建并运行我们自己写的可执行程序。以及使用fork()函数在代码中创建一个子进程。 而fork()函数的使用上篇文章已有介绍,这里不赘述。简单复习一下fork()函数具体做了什么…

设置jenkins时区记录

System.setProperty(org.apache.commons.jelly.tags.fmt.timeZone, Asia/Shanghai)

论文笔记 网络安全图谱以及溯源算法

​ 本文提出了一种网络攻击溯源框架&#xff0c;以及一种网络安全知识图谱&#xff0c;该图由六个部分组成&#xff0c;G <H&#xff0c;V&#xff0c;A&#xff0c;E&#xff0c;L&#xff0c;S&#xff0c;R>。 1|11.知识图 ​ 网络知识图由六个部分组成&#xff0c…

k8s网络服务

k8s 中向外界提供服务的几种方法port-forward、NodePort&#xff0c;以及 更加常用的提供服务的资源ingress。 1 kubectl port-forward service/redis 6379:6379 现在k8s中有一个pod运行在6379&#xff0c;本机访问映射到6379上&#xff0c;它可以针对部署&#xff0c;服务&…

设计模式之 中介者模式

中介者模式&#xff08;Mediator Pattern&#xff09;是一种行为型设计模式&#xff0c;旨在通过引入一个中介者对象来降低多个对象之间的耦合度&#xff0c;从而促进对象间的通信和协调。中介者模式的核心思想是“将对象之间的直接交互移到一个中介者对象中”&#xff0c;让中…

AI在线免费视频工具4:AI视频编辑ai-video-composer

1、ai-video-composer 使用自然语言从您的资产组成新的视频。添加视频、图像和音频资源&#xff0c;让 Qwen 2.5-Coder 为您生成一个新的视频(使用 FFMPEG) https://huggingface.co/spaces/huggingface-projects/ai-video-composer

突破Zustand的局限性:与React ContentAPI搭配使用

Zustand在状态管理中是非常适手的工具&#xff0c;在很多场景中我们都可以用它来解决复杂问题. 但是由于Zustand的设计理念&#xff0c;它仍然有一些限制&#xff0c;在这里用官网中的小demo举一个很简单的例子&#xff1a; import { create } from zustand type CountStore …

numpy.digitize函数介绍

numpy.digitize 是 NumPy 中的一个函数,用于根据给定的边界(分箱规则)对输入数组中的值进行分箱,返回对应的箱索引。它在分段处理、统计分布和离散化数据等场景中非常有用。 函数签名 numpy.digitize(x, bins, right=False)参数详解 x: 输入数组,表示需要进行分箱的值。…