【资料图】
select * 会将用不到的字段也查询出来,耗费内存资源。并且不能使用覆盖索引
select column1,column2 from user。如果查询的所有字段都是索引字段,称为覆盖索引,覆盖索引的查询速度与效率是非常高的。
不要在重复性过高的字段上使用索引,比如性别这个字段,加上索引的作用不大。根据阿里巴巴开发手册,单表索引要在5个以内。
之前带实习生的时候,看到过这种代码 ,逻辑没问题,但是磁盘IO次数过多,增加性能消耗
第一条SQL找到第一条匹配数据之后,继续扫描下一条数据,直到所有数据表的数据扫描一遍。
第二条SQL,加了limit 1之后,找到第一条匹配的数据之后,直接返回结果,停止匹配工作。
有时候业务要做数据清洗,可能要做分页
原SQL,会查询10020条数据,再抛弃前面的10000条数据,只保留20条。而优化后的SQL,会直接从10001数据查起,取20条数据。
查询缓存在MySQL在提出,MySQL8之后又移除。但是大部分公司还在使用,还是有这一项功能的。查询缓存默认是处于关闭状态的,需要手动修改配置文件,重启才能生效。开启查询缓存后,SQL第一次执行后会将数据缓存到内存中,第二次查询直接从内存读取。但是存在以下缺点:
缓存命中率不高,任何对于表结构与数据的更新操作都会让缓存失效。两次查询的SQL需要完全匹配,连大小写都需要一致。根据官方的测试,开启缓存后针对一个表进行简单查询,每次查的都不一样,结果性能降低13%。这个是个用的好,提升性能,用不好会坑自己的方法。
标签:
只select用到的字段select*会将用不到的字段也查询出来,耗费内存资源
1、十亿元onebilliondollars一亿元onehundredmilliondollars你可
互动平台回应内容不准确、信息披露不完整,南方精工收警示函,警示函,互
九华旅游公告,2023年7月10月,文旅集团与省高新投签署《关于<表决权委
【环球网报道】综合“今日俄罗斯”网站、塔斯社报道,克里姆林宫发言人