想去放牛

导航

 

  总体优化思路:

  1.查询更少的数据(需要哪些就查哪些)

  2.扫描更少的行(加索引,索引优化)

  3.建立更少的连接次数(批量操作)

  4.搭配explain检验调试效果

 

一:基本写法优化

  1.禁止使用 * ,需要什么字段就取什么字段。

  2.对于条件中等号两边类型要一致,字符串类型不加单引号会导致索引失效。

  3.尽量少使用order by,对于多个字段要排序的使用组合索引。

  4.对于group by语句要先过滤后分组。

  5.在查询时尽量少使用null,可给字段设置默认值。

  6.少使用like,需要使用时,尽量用 abd% ,不要将%用在最前面,会导致索引失效。

  7.在where后面少使用函数或算术运算,会导致索引失效。

  8.distincit过滤字段要少,避免使用distinct * 。

  9.不要超过5个表以上的连接。

二:建立合适的索引

  1.对于高频筛选字段可以适当简历索引。

  2.一个表的索引不要超过5个,多了会影响插入、修改效率。

  3.不要对值是有限重复的字段建立索引,如性别,分辨率太低没必要。

  4.使用组合索引一定要遵守最左原则。

三:替代优化

  1.不要使用not in和<>,会破坏索引结构,<>可以使用<和>代替。

  2.使用join连接代替子查询。

  3.not in可以使用not exists代替,遵守小表驱动大表原则。

四:分页优化

  1.当翻页要翻很多的时候,将limit  (from)  ,(size)替换成where id>#lastId},select *  from table limit 50000,50000替换成select *  from table where id>50000 limit 50000,id为前端传回上一次查询的最后一条数据的id。(id为自增)

  2.通过子查询方式优化:select * from table where id in (select id from table where id >50000 limit 50000,id)。

 

posted on 2022-04-17 17:17  想去放牛  阅读(34)  评论(0)    收藏  举报