侧边栏壁纸
  • 累计撰写 123 篇文章
  • 累计创建 48 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

MySQL高级系列-SQL性能下降的原因及执行顺序

田小晖
2020-12-30 / 0 评论 / 0 点赞 / 317 阅读 / 0 字 / 正在检测是否收录...

MySQL高级系列-SQL性能下降的原因及执行顺序

1.SQL性能下降的原因

  • 根本原因
    • 执行时间长
    • 等待时间长
  • 主要原因
    • SQL写的烂
    • 索引失效
    • 关联查询太多join
    • 服务器调优及各个参数设置(缓冲、线程数等)

2.SQL的执行顺序

  • 手写

    select distinct 查询字段
    from 表名1
    [left]/[right]/[inner] join 表名2
    on 表1.字段=表2.字段
    where 查询条件
    group by 分组字段
    having 分组后判断条件
    order by 排序字段 [asc|desc]
    limit 分页字段
    
  • 机读

    1.执行 from 表名1
    2.执行 on 关联条件得到它们的交集
    3.执行 [left|right|inner] join 表名2 
    4.执行 where 判断条件
    5.执行 group by 进行分组
    6.执行 having 对结果再次进行筛选
    7.执行 select 
    8.执行 order by 进行排序
    9.执行 limit
    
  • 总结

    1609310274000

    1.from 笛卡尔集
    2.on 主表保留
    3.join 不符合on也添加
    4.where 非聚合,非select 别名
    5.group by 改变对表的引用
    6.having 只作用分组后
    7.select distrinct
    8.order by 可使用select 别名
    9.limit rows offiset
    
博主关闭了所有页面的评论