您的当前位置:首页 > 市场 > 正文

一文解读MySQL查询优化技巧

  • 2023-07-11 00:05:37 来源:哔哩哔哩


【资料图】

只select用到的字段

select * 会将用不到的字段也查询出来,耗费内存资源。并且不能使用覆盖索引

尽量使用覆盖索引

select column1,column2 from user。如果查询的所有字段都是索引字段,称为覆盖索引,覆盖索引的查询速度与效率是非常高的。

索引使用要合理

不要在重复性过高的字段上使用索引,比如性别这个字段,加上索引的作用不大。根据阿里巴巴开发手册,单表索引要在5个以内。

减少数据库交互次数

之前带实习生的时候,看到过这种代码 ,逻辑没问题,但是磁盘IO次数过多,增加性能消耗

使用limit 1

第一条SQL找到第一条匹配数据之后,继续扫描下一条数据,直到所有数据表的数据扫描一遍。

第二条SQL,加了limit 1之后,找到第一条匹配的数据之后,直接返回结果,停止匹配工作。

limit分页优化

有时候业务要做数据清洗,可能要做分页

原SQL,会查询10020条数据,再抛弃前面的10000条数据,只保留20条。而优化后的SQL,会直接从10001数据查起,取20条数据。

避免左模糊匹配

Union替换OR语句

In与Exists的使用

谨慎使用MySQL查询缓存

查询缓存在MySQL在提出,MySQL8之后又移除。但是大部分公司还在使用,还是有这一项功能的。查询缓存默认是处于关闭状态的,需要手动修改配置文件,重启才能生效。开启查询缓存后,SQL第一次执行后会将数据缓存到内存中,第二次查询直接从内存读取。但是存在以下缺点:

缓存命中率不高,任何对于表结构与数据的更新操作都会让缓存失效。两次查询的SQL需要完全匹配,连大小写都需要一致。根据官方的测试,开启缓存后针对一个表进行简单查询,每次查的都不一样,结果性能降低13%。这个是个用的好,提升性能,用不好会坑自己的方法。

标签:

推荐阅读

一文解读MySQL查询优化技巧

只select用到的字段select*会将用不到的字段也查询出来,耗费内存资源

one billion是什么意思 billion是什么意思

1、十亿元onebilliondollars一亿元onehundredmilliondollars你可

互动平台回应内容不准确、信息披露不完整,南方精工收警示函

互动平台回应内容不准确、信息披露不完整,南方精工收警示函,警示函,互

九华旅游:实控人将变更为池州市国资委

九华旅游公告,2023年7月10月,文旅集团与省高新投签署《关于<表决权委

普京会见普里戈任的谈话内容披露

【环球网报道】综合“今日俄罗斯”网站、塔斯社报道,克里姆林宫发言人

猜您喜欢

【版权及免责声明】凡注明"转载来源"的作品,均转载自其它媒体,转载目的在于传递更多的信息,并不代表本网赞同其观点和对其真实性负责。亚洲商业网倡导尊重与保护知识产权,如发现本站文章存在内容、版权或其它问题,烦请联系。 联系方式:8 86 239 5@qq.com,我们将及时沟通与处理。

宏观