当前位置: 首页 > news >正文

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

EXPLAIN之ID

  • 题记
  • ID

题记

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

ID

  • 为每一个select分配唯一的ID

  • 单表查询

    • EXPLAIN select * from ucoding where k1 = 'Td621'
      在这里插入图片描述
  • 多表连接查询

    • EXPLAIN select * from ucoding u1 JOIN icoding on k1 = i_k1 where mark = 'Td621'
      在这里插入图片描述

    • 欸!快看,明明只一个select,有两个执行计划,哈哈哈…
      在这里插入图片描述

      • 咱来解释下,首先这依然是当前select的执行计划,和记录数无关,难道去做大保健只是洗个脚吗,洗脚只是计划中的一个步骤
      • 连接查询语句,每个表都有条记录,神如innodb,TA也得挨个表处理是不!
      • 再有,在连接查询语句,有驱动表被驱动表时,id相同
  • 涉及多个select(子查询)

    • EXPLAIN select * from ucoding where k1 in (SELECT i_k1 from icoding ) or k3 = 'a'
      在这里插入图片描述
  • 涉及多个select(union)

    • EXPLAIN select * from ucoding where k3 ='tt' union select * from icoding where i_k3 ='tt'
    • id = null ,表示为临时表,因为 union需要去重, union all不需要去重,就没有临时表 在这里插入图片描述
      ``

http://www.mrgr.cn/news/67556.html

相关文章:

  • qt QItemSelectionModel详解
  • MySQL 数据库之表操作
  • C语言strtol函数使用的坑
  • 仿真APP助力汽车零部件厂商打造核心竞争力
  • [python] 如何debug python脚本中C++后端的core dump
  • 如何选择定制门牌厂家
  • idea-git 远程仓库代码回滚,本地仓库代码回滚,删除未加入git的文件
  • 二叉树及其应用
  • 背包九讲——背包问题求具体方案
  • 三品PLM系统如何规范企业图纸文档资料电子化管理
  • 全国消防安全月知识答题小程序来袭
  • 基于SpringBoot的Java教学支持系统开发指南
  • 将python代码转化成接口api
  • 低价治理都有哪些方法
  • 营销邮件策略:提升打开率和转化率的技巧!
  • 【数据结构和算法】-时间复杂度
  • mysql 源码安装以及多实例
  • 学习threejs,使用JSON格式保存和加载模型
  • MELON的难题
  • 数据库 - 一文看懂MongoDB
  • encodeURIComponent和decodeURIComponent的使用场景
  • Misère Nim game
  • 支持高性能结构化数据提取的 Embedding 模型——NuExtract-v1.5
  • 【Python】遇到pandas 和numpy版本不兼容怎么办?
  • 船舶终端设备维修服务设计
  • uniapp开发APP后台保活机制