写点什么

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

作者:知识浅谈
  • 2022 年 8 月 28 日
    吉林
  • 本文字数:998 字

    阅读完需:约 3 分钟

想不到吧,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 做的优化,希望有所帮助。

发布于: 刚刚阅读数: 3
用户头像

知识浅谈

关注

公众号:知识浅谈 2022.06.22 加入

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

评论

发布
暂无评论
想不到吧,Mysql在项目中的优化场景这么多_sql_知识浅谈_InfoQ写作社区