想不到吧,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 做的优化,希望有所帮助。
版权声明: 本文为 InfoQ 作者【知识浅谈】的原创文章。
原文链接:【http://xie.infoq.cn/article/aa6397f301e60326adc66677a】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论