想不到吧,Mysql在项目中的优化场景这么多

举报
知识浅谈 发表于 2022/08/28 09:41:56 2022/08/28
【摘要】 想不到吧,Mysql在项目中的优化场景这么多

🍁 作者:知识浅谈,CSDN博客专家,阿里云签约博主,InfoQ签约博主,华为云云享专家
📌 擅长领域:全栈工程师、爬虫、ACM算法
💒 公众号:知识浅谈
🔥 联系方式vx:zsqtcc

想不到吧,Mysql在项目中的优化场景这么多总结
🤞这次都给他拿下🤞

正菜来了⛳⛳⛳

🎈Mysql在项目中的优化场景,慢查询解决等

猛地一看,感觉这个优化的点就在两个方面:
一个是对sql语句进行改造,
一个是对索引进行改造,当然sql的索引的优化占一大部分,毕竟要注意的点比较多。

🍮SQL语句方面

在这里插入图片描述

sql语句的优化主要是像是连接语句where语句limit语句select优化等这几个方面。
1️⃣连接语句:连接方式包括内连接和外连接(左连接,右连接,全连接),在不同的场景下使用不同的个连接方式,优化响应的查询效率。
2️⃣where语句:尽量保证where语句后字段有对应的索引,才能加快速率。
3️⃣limit语句:如我们常见的limit 10000,10 这个是需要取出前10010条数据的,然后截取后10条,优化方法:如果对应的字段是有序的话,我们可以使用如where id>10000 limit 0,10 这样速度就快很多了,如果是无序的话,我们可以先查询id,再根据id回表,这样也会很快 where id in(select id from table1 limit 10000,10)
4️⃣select* :很多时候不推荐使用这个select

第一:select 指出指定的字段在代码方面也容易查看业务需要的都是什么字段。
第二:select需要查询全部的字段的值,如果是根本用不到的查询出来,也增加了IO,如像是聚合索引就能索引覆盖到字段的值,如果select还要进行回表,无疑增加了IO。
第三:select*查询较多的值,在网络传输的时候也会暂用较大的带宽和传输流量,延迟传输时间。

🍮索引方面

在这里插入图片描述

📐第 1 步: 是否创建了索引
在查询数据的时候,where条件后边的字段是否使用到了索引,比如说添加唯一索引,普通索引,全文索引等索引结构。

📐第 2 步 :索引是否已经失效
因为有一些常见索引失效的条件,模糊查询 %在前边,参与表达式,使用内置函数,隐私转换,字符编码不同,>,<,当IN的取值范围较大时会导致索引失效等,检查是否会出现索引失效的情况。

📐第 3 步:索引是否使用恰当
索引是否使用恰当,指的是针对不同的查询,如多条件查询的时候,可以选择使用聚合索引,分辨率高的字段使用索引,具有唯一性性质的索引使用唯一索引,对修改频繁的可以使用普通索引,因为写的数据可以写到changebuffer中,使用普通索引不会有影响。

🍚总结

以上就是关于在项目中mysql做的优化,希望有所帮助。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。