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

打印 上一主题 下一主题

主题 895|帖子 895|积分 2695

题记



  • 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不需要去重,就没有临时表

      ``


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

泉缘泉

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表