博客
关于我
mysql执行顺序与索引算法
阅读量:800 次
发布时间:2023-02-12

本文共 1094 字,大约阅读时间需要 3 分钟。

MySQL执行顺序与索引算法

书写顺序

MySQL查询的书写顺序遵循以下规则:

  • 必须字段

    • select:指定要查询的字段。
    • from:指定数据来源表。
  • 可选字段

    • distinct:去重。
    • join:表关联。
    • on:关联条件。
    • where:过滤条件。
    • group by:分组。
    • having:聚合后过滤。
    • sum、count、max、avg:聚合函数。
    • order by:排序。
    • limit:限制结果数量。
  • 执行顺序

    MySQL执行查询时遵循以下顺序:

  • from 阶段开始。
  • on 阶段处理关联条件。
  • join 阶段将相关表连接。
  • where 阶段过滤数据。
  • group by 阶段对数据进行分组。
  • having 阶段对聚合结果进行过滤。
  • select 阶段指定最终显示的字段。
  • distinct 阶段去重。
  • order by 阶段排序。
  • limit 阶段限制结果数量。
  • 提问解答

    Q:为什么字段别名不能在 where 中使用,但可以在 order by 中使用?

    A:

    • select 语句的执行顺序在 where 之后,因此在 where 阶段之前无法使用字段别名。
    • order by 阶段在 select 之后,可以使用字段别名。

    关键词含义

    from

    • 指定查询的数据表。

    join

    • 关联查询表。
    • 驱动表选择原则:优先选择结果集最少的表。

    on

    • 关联条件。

    where

    • 过滤数据。
    • 执行顺序:自下而上、从右到左。

    group by

    • 分组。
    • 执行顺序:从左到右。

    avg

    • 计算平均值。

    having

    • 聚合后过滤。

    select

    • 指定显示字段。

    distinct

    • 去重。

    order by

    • 排序。
    • 执行顺序:从左到右。

    limit

    • 截取结果。

    索引关联中使用的算法

    Nested-Loop join 算法

    • Simple Nested-Loop Join (SNLJ):驱动表记录与被驱动表全表匹配。
    • Index Nested-Loop Join (INLJ):基于索引进行匹配,减少匹配次数。
    • Block Nested-Loop Join (BNLJ):批量缓存匹配,减少内层表遍历次数。
    • Batched Key Access Join (BKAJ):利用索引排序,减少随机IO。

    Join Buffer

    • 缓存参与查询的所有列。
    • 默认缓存大小为256K。
    • 使用 optimizer_switch = block_nested_loop 控制性能。

    Offer突击训练营

    • 面试保障:提供offer保障。
    • 学习目标:15-20天掌握技术成果。
    • 项目经验:提供真实开发细节。

    点击了解更多

    转载地址:http://jbdfk.baihongyu.com/

    你可能感兴趣的文章
    nacos运行报错问题之一
    查看>>
    Nacos部署中的一些常见问题汇总
    查看>>
    NACOS部署,微服务框架之NACOS-单机、集群方式部署
    查看>>
    Nacos配置Mysql数据库
    查看>>
    Nacos配置中心中配置文件的创建、微服务读取nacos配置中心
    查看>>
    Nacos配置中心集群原理及源码分析
    查看>>
    nacos配置在代码中如何引用
    查看>>
    nacos配置新增不成功
    查看>>
    nacos配置自动刷新源码解析
    查看>>
    nacos集成分布式事务插件Seata的序列化问题,实际上是Seata本身存在bug!!
    查看>>
    Nacos集群搭建
    查看>>
    nacos集群搭建
    查看>>
    nacos集群网络分区对的影响和运维方式
    查看>>
    nacos集群节点故障对应用的影响以及应急方法
    查看>>
    nacos集群配置详解
    查看>>
    nagios 实时监控 iptables 状态
    查看>>
    nagios+cacti整合
    查看>>
    Nagios介绍
    查看>>
    nagios利用NSCient监控远程window主机
    查看>>
    nagios安装文档
    查看>>