一次MySQL优化记录,从十几秒优化到三百毫秒

今天这篇文章还是记录问题的解决过程的。昨天测试测试代码的时候,发现一个功能需要大概十几秒的时间才能执行完。我就去看自己的代码逻辑,完整看了代码之后,凭感觉导致时间长的原因有两部分:一个是mysql的书写问题,另一个可能是循环查询数据库的问题。代码梦梦就不上传了,可能会涉及到公司的隐私问题

下面是粘出来的sql部分,可以看到这个sql都7秒多了,第二张图片是使用explain执行器之后的结果,可以看到五张表只有两张表走了索引,其他的表没有走索引,可以看到type这一列的级别也是ALL。

结果值从好到坏依次是:system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL。一般来说,得保证查询至少达到range级别,最好能达到ref,否则就可能会出现性能问题。所以这个sql要优化了。

一次MySQL优化记录,从十几秒优化到三百毫秒

一次MySQL优化记录,从十几秒优化到三百毫秒

优化方式:

1,先结合type+key这两列来优化,也就是通过增加索引来优化。一般我会给在where 和order by 子句中用到字段添加索引。所以我就在 d 表上添加了四个索引(deviceId、name、del_flag、project_id),c 表给prdfession也添加了索引。

2,之后再根据Extra这一列进行优化,可以看到上图这两列出现了“Using temporary”、“Using filesort”这两种情况。
“Using temporary”:指的是sql中如果order by或者group by中的字段都来自于其它表而非连接顺序中的第一个表,就会创建一个临时表了。解决方案:可以尝试创建联合索引试试。

“Using filesort”:指的是order by 查询的字段数据量超出了mysql的默认值,导致了order by中的字段不走索引,使用了文件查询,也是导致性能瓶颈的原因。解决方案:可以尝试把排序功能放到代码中实现,sql中不做排序。

当创建了普通索引、联合索引(project_id + name)之后,再看一下sql的执行速度。

一次MySQL优化记录,从十几秒优化到三百毫秒一次MySQL优化记录,从十几秒优化到三百毫秒一次MySQL优化记录,从十几秒优化到三百毫秒

可以看到执行速度立马就提了上去,explain命令执行的时候,也会发现type一列全达到了ref级别,extra一列去没有了“Using temporary”、“Using filesort”这两个影响性能的标志。

现在sql的优化就完成了,如果速度还慢的话,就考虑优化代码逻辑的部分辽。

 

版权声明:本文为CSDN博主「梦梦~~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_46540738/article/details/125531427

发布者:柚子,转转请注明出处:https://ityouzi.com/archives/mysql-youhua-30-300.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
柚子柚子
0
做短视频推荐的素材网站(图片素材、视频素材、文字素材、音频素材)
上一篇 2022年6月27日 下午6:16
Premiere(PR) FilmImpact转场插件汉化版下载和安装教程
下一篇 2022年7月17日 下午4:24

相关推荐

  • FluentValidation 验证组建在MVC中的运用(图文,附代码示例) 后端技术

    FluentValidation 验证组建在MVC中的运用(图文,附代码示例)

    2019年3月30日 0 05.0K
  • Stripe支付介绍和开发对接,图文加代码 后端技术

    Stripe支付介绍和开发对接,图文加代码

    2020年10月30日 0 324.3K
  • 后端技术

    .NET 开源项目非常全面的汇总

    2019年4月2日 0 04.5K
  • ASP.NET Core 中使用阿里云OSS SDK 后端技术

    ASP.NET Core 中使用阿里云OSS SDK

    2019年6月6日 0 08.8K
  • 后端技术

    ASP.NET Core 2.0 WebAPI 使用Cors实现跨域

    2019年6月5日 0 04.1K
  • 后端技术

    C# 字符串处理方法总结(截取、替换、排列、插入、删除……)

    2019年4月2日 0 012.2K

发表回复

您的电子邮箱地址不会被公开。

最新发布

  • 二手房装修经验总结

    二手房装修经验总结

    2023年3月1日

  • Premiere(PR) FilmImpact转场插件汉化版下载和安装教程

    Premiere(PR) FilmImpact转场插件汉化版下载和安装教程

    2022年7月17日

  • 一次MySQL优化记录,从十几秒优化到三百毫秒

    一次MySQL优化记录,从十几秒优化到三百毫秒

    2022年7月6日

  • 做短视频推荐的素材网站(图片素材、视频素材、文字素材、音频素材)

    做短视频推荐的素材网站(图片素材、视频素材、文字素材、音频素材)

    2022年6月27日

  • VS Code官网最新版本下载地址

    VS Code官网最新版本下载地址

    2022年6月20日

  • 电脑C盘可用空间不足,可能是QQ拼音软件占用了

    电脑C盘可用空间不足,可能是QQ拼音软件占用了

    2022年6月16日

  • 时光之轮 第一季,高质量科幻美剧推荐,附可观看地址

    时光之轮 第一季,高质量科幻美剧推荐,附可观看地址

    2022年6月14日

  • 爱,死亡和机器人,一部不错的动漫连续剧,附可看地址

    爱,死亡和机器人,一部不错的动漫连续剧,附可看地址

    2022年5月1日

  • 5CE内容生成神器,轻松获取文章素材和创作

    5CE内容生成神器,轻松获取文章素材和创作

    2022年4月11日

  • VS2022官网下载地址( Visual Studio 2022)

    VS2022官网下载地址( Visual Studio 2022)

    2022年4月11日

深圳SEO优化公司铜陵阿里店铺托管多少钱石家庄seo网站优化公司丽水网站搭建哪家好商洛网站搭建推荐三亚SEO按天收费公司丹东SEO按效果付费哪家好临汾网络推广毕节网站推广方案推荐鹤岗网站设计模板多少钱武威网站制作推荐南平阿里店铺运营哪家好邢台优化哪家好长沙网站建设设计报价吉林网站优化按天计费昌吉seo报价本溪网站开发推荐廊坊建设网站昌吉关键词排名包年推广周口网站建设设计哪家好黔南网站开发永州网站建设设计坪地seo排名公司桂林百姓网标王多少钱珠海建设网站哪家好白城网站优化按天计费价格廊坊网站设计多少钱南澳seo网站优化报价南联阿里店铺运营哪家好张家口网站建设价格同乐营销型网站建设推荐歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化