SQL优化

建表时优化

  1. 合理的设计表结构

  2. 列的长度尽可能的短。列短则索引空间的利用率更高,索引树层级更低,查询更快。

  3. 在业务允许的情况下使用数字替代字符串,字符串是按字符比较,数字是整体比对。

  4. 适当冗余,以空间换时间,减少连表查询

  5. 使用Not null,当null占比较高时is not null查询会导致索引失效。

索引优化

  1. 为在合适的列建索引。

  2. 避免使用表达式。

  3. 注意隐式类型转化,它本质也是使用表达式的一种。

  4. 小心使用模糊查询联合索引

  5. 使用覆盖索引

  6. 定期清理索引碎片,B+树采用的页分类和页合并机制,可能有一部分索引空间是空的。不过现在业务上大部分使用的是伪删除,这部分可优化空间不大。

查询语句优化

  1. 参数化SQL,既能利于优化器提高性能,又能防止SQL注入。

  2. 减少查询的行,可以进行分页

  3. 减少查询的列,可以充分利用覆盖索引

  4. 根据场景使用子查询还是in查询

  5. 使用Union All而不是Union。使用Union必然存在一次去重,如果我们能断言不要去重那就没必要执行这个过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值