【项目实战典型案例】02.SQL语句优化
创始人
2025-05-28 10:12:31

目录

  • 一:背景介绍
    • 1、问题一:查询11s导致接口请求超时
    • 2、问题二:由于设计数据稍微大了点,接口调用就超过了1s
  • 二:思路&方案
    • 1、Mysql语句的执行顺序
    • 2、explain关键字解析
    • 3、distinct和group by效率对比
    • 4、优化案例
      • 1)数据类型不一致
      • 2)数据类型一致

一:背景介绍

1、问题一:查询11s导致接口请求超时

在这里插入图片描述

2、问题二:由于设计数据稍微大了点,接口调用就超过了1s

在这里插入图片描述

二:思路&方案

1、Mysql语句的执行顺序

  1. from
  2. on
  3. join
  4. where
  5. group by
  6. having + 聚合函数
  7. select
  8. distinct
  9. order by
  10. limit
    在这里插入图片描述
    上面sql语句执行的顺序为2–>3–>4–>1–>5–>6

2、explain关键字解析

explain是解释、说明的意思。在mysql里,一条查询语句需要经过Mysql查询优化器的各种成本和规则,生成一个执行计划。儿explain关键字就是查询这个执行计划的,通过explain关键字,可以分析我们的查询语句的效率。

语法:explain select * from table

在这里插入图片描述

3、distinct和group by效率对比

  1. 有索引的情况下,group by和distinct都能用索引,效率相同
  2. 没有索引的时候,distinct效率高于group by,distinct是根据信息不同进行直接进行去重,group by的原理是结果先进行分组排序,然后返回每组中的第一条数据
  3. 如果是单纯的去重操作的话,无论是否有索引,distinct的效率都更加高,但是吐过查询的列和去重的列不对应的话,distinct就无法使用了。相较于group by不够灵活
  4. group by的语义更加的明确,并且group by可以根据分组的情况加上聚合函数,做一些其他的处理,功能更加丰富,但是有时间效率将低于distinct
  5. distinct用法
 select distinct 列1 , 列2 from table
  1. group by用法
select 列1,列2 from table group by 列1 ,列2

4、优化案例

1)数据类型不一致

sql语句

SELECTaui.ding_phone,aui.ding_name,aui.chaoxing_name,aui.chaoxing_phone 
FROM(SELECT info_id FROM arpro_user_course_info WHERE course_id = 223667994 AND class_id = 55801765 AND is_delete = 0 GROUP BY info_id ) auciLEFT JOIN arpro_user_info aui ON auci.info_id = aui.id

表字段数据类型
在这里插入图片描述
在这里插入图片描述
创建索引
在这里插入图片描述
执行结果:主键索引没有生效
在这里插入图片描述

2)数据类型一致

sql语句

SELECTaui.ding_phone,aui.ding_name,aui.chaoxing_name,aui.chaoxing_phone 
FROM( SELECT DISTINCT info_id FROM arpro_user_course_info WHERE course_id = 223667994 AND class_id = 55801765 AND is_delete = 0 ) auciLEFT JOIN arpro_user_info aui ON auci.info_id = aui.id

执行结果
在这里插入图片描述

相关内容

热门资讯

3小时高铁、畅享温泉滑雪,六安... 最近,不少上海人的朋友圈里,晒的不再是北海道粉雪或长白山雾凇,而是海拔超千米的大别山雪场和热气氤氲的...
脾胃不好,少吃这3类水果 水果是公认的健康食物,不仅能满足口腹之欲,还可以增加维生素、矿物质、膳食纤维等营养物质的摄入。 但是...
河南人过年送整箱火腿肠,背后的... 每逢新春佳节,河南很多地区的人们走亲访友,总少不了送上整箱火腿肠。这一看似寻常的节礼,背后却承载着一...
甘肃平凉崆峒区:地道风物引客来 近日,甘肃省平凉市崆峒区绿地广场上,一串串红灯笼与古韵妆饰的摊位相映成趣,空气中弥漫着美食的香气与喜...
无锡市周边亲子游景点推荐 在忙碌的生活中,亲子游成为了增进亲子关系、开阔孩子视野的绝佳方式。无锡这座美丽的城市周边,有着众多适...