【项目实战典型案例】02.SQL语句优化

25 篇文章 0 订阅
订阅专栏

一、背景介绍

1、查询11s导致接口请求超时

在这里插入图片描述

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

在这里插入图片描述

二、思路&方案

  • sql语句各部分的执行顺序
  • 明确distinct和group by的差异
  • 查看sql语句是否已经添加了索引,索引是否失效

三、过程

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语句

SELECT
	aui.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 ) auci
	LEFT JOIN arpro_user_info aui ON auci.info_id = aui.id

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

2)、数据类型一致

将数据类型调整为bigint

将group调整为distinct

SELECT
	aui.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 ) auci
	LEFT JOIN arpro_user_info aui ON auci.info_id = aui.id

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

四、优化的好处

1、提高查询性能

优化SQL语句可以减少查询的执行时间和资源消耗,提高系统的响应速度和吞吐量。通过使用合适的索引、优化查询计划和减少不必要的数据读取,可以有效地提高查询的性能。

2、减少系统负载

优化SQL语句可以减少系统的负载,提高系统的稳定性和可靠性。通过减少不必要的数据库访问、优化查询语句的效率和减少数据传输量,可以降低系统的资源消耗,减少数据库的负载。

3、提高用户体验

优化SQL语句可以提高用户的体验和满意度。快速响应的查询结果可以让用户更好地享受系统的功能,提高用户的工作效率和满意度。同时,优化SQL语句还可以降低系统的错误率和异常情况,提高系统的可用性和稳定性。

4、节省成本

优化SQL语句可以节省系统的资源和成本。通过减少不必要的数据库操作和优化查询语句的效率,可以降低数据库的存储和计算成本。同时,优化SQL语句还可以减少系统的维护和运维成本,提高系统的可维护性和可扩展性。

5、改善系统的可扩展性

优化SQL语句可以改善系统的可扩展性和性能扩展能力。通过优化查询语句的效率和减少数据传输量,可以降低系统的资源消耗,提高系统的性能和扩展能力。这有助于系统在面对大量用户和数据时仍然能够保持高性能和稳定性。

五、总结

明确sql语句的执行顺序有助于我们对于sql语句进行优化。提高我们对数据库和sql语句的理解。来编写效率更高的语句。优化SQL语句可以提高查询性能、减少系统负载、提高用户体验、节省成本和改善系统的可扩展性。这些好处有助于提高系统的性能、稳定性和可用性,提升用户的满意度和系统的价值。

SQL优化实战经典案例分析
m0_73583495的博客
12-24 186
今天和大家聊聊SQL优化的场景。SQL调优这块呢,大厂面试必问的。最近金九银十嘛,所以整理了SQL的调优思路,并且附几个经典案例分析。
SQL实战项目】电商平台数据分析项目
热门推荐
zhangruihua1998的博客
02-28 1万+
二.数据清洗 2.1去除重复值 去除重复值这里,可以将user_id,item_id,timestamp三者进行联合,形成联合主键,对数据集进行分组。如果数据集中没有重复值,则理论上用三者进行联合分组之后, count(user_id)应该是不大于1的;如果数据集中有重复值,则理论上用三者进行联合分组之后,count(user_id)应该是大于1的。因此在这里判断count(user_id)是否大于1可以用having函数。 SELECT use_id FROM userbavior GROUP BY us
SQL语言教程及项目案例
05-09
SQL语言教程及项目案例 适合新手
【干货实战】SQL太慢,教你调优三板斧-Select篇
最新发布
大鹏的博客
06-27 1974
实战教学慢SQL调优,干货满满,让你从入门到资深,一招鲜
SQL优化思路+经典案例分析
m0_71777195的博客
10-07 1930
大家好,捡田螺的小男孩。SQL调优这块呢,大厂面试必问的。最近金九银十嘛,所以整理了SQL的调优思路,并且附几个经典案例分析。
项目中常用的 19 条 MySQL 优化
公众号:Java后端
05-13 421
作者:zhangqh来源:segmentfault.com/a/1190000012155267声明一下:下面的优化方案都是基于 “ Mysql-索引-BTree类型”...
MySQLSQL优化实战记录
IT哈哈的博客
11-09 809
背景 本次SQL优化是针对javaweb中的表格查询做的。   部分网络架构图   业务简单说明   N个机台将业务数据发送至服务器,服务器程序将数据入库至MySQL数据库。服务器中的javaweb程序将数据展示到网页上供用户查看。   原数据库设计   windows单机主从分离 已分表分库,按年分库,按天分表 每张表大概20w左右的数据  ...
一个sql优化案例
xudajian的专栏
05-31 435
最近,公司上线一个新项目,但上线后没几天,数据库的性能问题尤为明显,其中一个较为特殊,查询缓慢,还经常导致应用端服务内存溢出而崩溃。 原语句: SELECT media_id,ad_id,ad_name, advertiser_id,ad_modify_time, ad_create_time, `status`,opt_status,delivery_range,inventory_type,open_url,bid,budget,budget_mode,mm.smart_...
数据库SQL实战案例.zip
05-21
"数据库SQL实战案例.zip"这个压缩包文件,从其标题和描述来看,显然包含了关于数据库操作和SQL实际应用的练习题目,可能是为了帮助用户提升数据库查询和管理的能力。在数据库系统中,SQL是用于与关系型数据库进行...
SQL-基于sql实现的数据分析项目实战.zip
03-09
存储过程是一组预先编译的SQL语句,可提高性能并简化复杂的操作。自定义函数则允许创建个性化的数据处理逻辑,提高代码复用性。 七、性能优化 在大数据分析项目中,SQL性能优化是关键。这包括合理使用索引、避免全...
多种典型T-SQL语句、备份、优化、常见问题处理集合包.rar
05-14
这个压缩包“多种典型T-SQL语句、备份、优化、常见问题处理集合包.rar”显然是一个专门为SQL Server用户和学习者设计的学习资源,涵盖了从基本的查询到复杂的数据库管理技巧。以下是对这些主题的详细说明: 1. **T-...
SQL SERVER项目案例sql代码)
11-13
SQL SERVER项目案例SQL SERVER项目案例SQL SERVER项目案例
113 案例实战:亿级数据量商品系统的SQL调优实战(2).pdf
04-15
在亿级数据量的商品系统中,对SQL语句的调优至关重要,尤其是涉及数据筛选和排序的操作。由于数据量巨大,如果SQL语句的执行计划选择不当,就可能导致数据库响应缓慢甚至崩溃。本次案例实战主要围绕以下几个知识点...
SQL语句汇总.pdf
07-15
标题《SQL语句汇总.pdf》所代表的知识点覆盖了数据库操作的基础与高级内容,其详细描述了从创建数据库开始到创建表、管理表结构,以及数据的增删改查等SQL语句的运用。以下为详细知识点: 1. 数据库的创建与删除: ...
数据库SQL实战
weixin_38863108的博客
04-13 1570
牛客网-在线编程-数据库SQL实战 https://www.nowcoder.com/ta/sql
MySQL-SQL优化
m0_50180963的博客
02-06 1286
前言 在应用开发的早期,数据量少,开发人员开发功能时更重视功能上的实现,随着生产数据的增长,很多SQL语句开始暴露出性能问题,对生产的影响也越来越大,有时可能这些有问题的SQL就是整个系统性能的瓶颈。 SQL优化一般步骤 1、通过慢查日志等定位那些执行效率较低的SQL语句 2、explain 分析SQL的执行计划 需要重点关注type、rows、filtered、extra。 type由上至下,效率越来越高 ALL 全表扫描 index 索引全扫描 range 索引范围扫描,常用语&lt.
SQL优化这么做就对了
程序猿DD
04-25 668
作者 |狼爷来源 |https://www.cnblogs.com/powercto/p/14410128.html前言在应用开发的早期,数据量少,开发人员开发功能时更重视功能上的实现...
SQL实战
qq_35482365的博客
06-07 529
1.数据2.不同城市数据分析师需求量:代码:输出:3.增加一列底薪:代码:
写文章

热门文章

  • 【Nexus】上传jar至Nexus的两种方式 18209
  • 【前端】Vue生命周期函数(详细讲解+中文图解) 17919
  • 【Linux】更换jdk版本 14115
  • 【系统架构】ER图 13538
  • 【前端】掌握按钮的显示与隐藏 13501

分类专栏

  • 前端 17篇
  • ES6 1篇
  • 面向对象继承 1篇
  • JavaScript 1篇
  • 收获总结 7篇
  • React.js 4篇
  • 项目实战 25篇
  • 数据库 11篇
  • C# 20篇
  • 运维 16篇
  • 大话设计模式 16篇
  • Java 16篇
  • VB 4篇
  • 自考 1篇
  • 感受 3篇
  • 系统架构 2篇
  • 算法排序 1篇
  • Git 1篇
  • Shell脚本 2篇
  • Jenkins 2篇
  • Linux 1篇
  • Nexus 3篇

最新评论

  • 【docker】深入解析Docker中CMD和ENTRYPOINT的差异与用途

    kobe_t: 连截图都是kuangshen。。。。,抄的时候自己改下啊

  • 【前端】Vue生命周期函数(详细讲解+中文图解)

    天生我材必有用_吴用: 写的真好,细节很到位!【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • 【系统架构】ER图

    m0_70545225: 有什么画er图的软件推荐吗

  • 【前端】掌握按钮的显示与隐藏

    普通网友: 学到了!我也写了一篇获取【大厂面试真题解析、核心开发学习笔记、最新全套讲解视频、实战项目源码讲义、学习路线简历模板】的文章

  • 【前端】CSS-Grid网格布局

    爱吃芋圆的兔子: 欢迎各位大佬对本文提出宝贵的建议表情包

最新文章

  • 【ES6】Class继承-super关键字
  • 【JavaScript】面向对象继承
  • 【收获】成长之路
2023年67篇
2022年33篇
2021年26篇
2020年21篇
2019年5篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃芋圆的兔子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家辽宁火烈鸟玻璃钢雕塑安装沧州公园玻璃钢雕塑公司玻璃钢海洋雕塑费用运城玻璃钢雕塑公司玉溪玻璃钢雕塑厂家直销宣威市玻璃钢雕塑价位2018年世界杯商场美陈深圳人物玻璃钢雕塑公司哪家好东莞公园玻璃钢雕塑制作玻璃钢仿铜雕塑厂家梅花鹿玻璃钢运动雕塑价格南阳玻璃钢人物雕塑定做厂家清远创意玻璃钢雕塑优质的玻璃钢雕塑厂家供应专业生产玻璃钢雕塑淮南白雪公主玻璃钢雕塑厂家玻璃钢成品雕塑厂家花坛式玻璃钢花盆价格商场拱门美陈贵州城市景观雕塑玻璃钢定做玻璃钢雕塑厂家哪家好玻璃钢雕塑货源推荐福建佛像玻璃钢雕塑生产厂家东莞玻璃钢蜗牛雕塑电话玻璃钢动物雕塑小猪摆件玻璃钢艳后雕塑哪家好韶关公园玻璃钢雕塑玻璃钢玻璃钢雕塑厂家济宁玻璃钢雕塑制作厂家玻璃钢孔子雕塑厂家香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化