优化小细节

1、当使用索引列进行查询的时候见谅不要使用表达式,把计算放到业务层而不是数据库层

  select id from table where id+1=5;  优先级范围为ref

  select id from table where id=4;  优先级范围为count

2、尽量使用主键查询,而不是其他索引,因此主键查询不会触发回表查询

3、使用前缀索引

4、使用索引扫描来排序

5、union all,in,or都能够使用索引,但是推荐使用in

6、范围列可以用到索引

   但是where条件中的范围查找后的条件不会走索引

  select * from dept where a>10 and b=1;  b不会走索引

7、强制类型转换会全表扫描

 

 phone存在索引,phone的类型为varchar,上图中第一条sql由int强制转换为varchar,不走索引

8、更新十分频繁,数据分区不高的字段上不宜建立索引

  更新会变更B+树,更新频繁的字段会降低数据库性能

9、创建索引的列,不允许为null,可能会得到不符合预期的结果

10、当需要进行表连接的时候,最好不要超过三张表,因为需要join的字段类型必须一致

11、如果明确知道只有一条结果返回,limit1能够提高效率

12、单表索引建议控制在5个以内

13、单索引字段不允许超过5个(组合索引)

 

posted @ 2021-02-28 21:59  showMeTheCodes  阅读(37)  评论(0编辑  收藏  举报