商城sql优化

优化思路:

1.查询条件没走到索引时,考虑创建索引?

2.索引是否失效

  • 数据类型不一致导致索引失效;
  • where条件最左匹配原则;
  • 不能在索引字段使用处理函数或表达式,因为这种操作会导致索引失效;
  • NOT IN、!=、‘%w’导致索引失效;like
  • 业务场景下SQL是否合理(jion表不能大于3张)超过三张表使用订单中心、商品中心查询;

3.尽可能少的查询表字段,不论是mapper文件还是Mybatis plus的写法。都必须显式指定要查询的字段,禁止select *。

4.某些区分度不高但是结果集占比很小的字段,强制走索引

5.热点数据和非热点数据隔离

 

优化小技巧:

1. 当前大多数表的主键是雪花生成,通过主键排序可以替代创建时间排序;

2. 当知道结果集只有一条的时候,带上limit 1,查到1条就会返回;

3. !=不会走索引,用> union < 来代替

4. 三表关联,a表(主表)、a关联b表,b表关联c表,谨慎使用c表的字段进行筛选

 

慢sql优化步骤建议:           

1 先从sql本身,通过减少查询字段、优化索引、减少关联表 提示sql本身的性能
2 sql本身优化余地不多,则从业务角度进行拆分进行优化(优化关联表)等
3 业务本身改动大的,先记录下来讨论

 

商城sql优化

上一篇:CentOS7.9安装Oracle 12C数据库实战


下一篇:为什么MySQL索引使用B+树?