SQL性能优化

一:索引优化:   

(1)针对数据量大,且查询比较频繁的表建立索引连接

(2)针对常作为查询条件、排序、分组操作的字段建立索引

(3)尽量选择区分度高的列作为索引,建立唯一索引

(4)如果是字符串字段,长度比较,建立前缀索引

(5)尽量使用联合索引,可以去覆盖索引,既节省存储空间,又提高查询效率

(6)要考虑索引数量,索引越多,维护索引代价越大,且增删改的效率更低

(7)索引不为null,提前约束

二:SQL语句优化

(1)避免使用通配符%和_:在LIKE查询中尽量避免使用通配符%,因为当%位于前面时会导致索引时效从而查询导致全表扫描,从而使效率降低

(2)避免使用子查询:尽量避免在查询中使用子查询,可以通过使用连接(JOIN)来替代子查询

(3)避免使用SELECT *在查询中避免使用SELECT * ,查询 * 时如果第一次没有查到对应的字段,则又会根据索引去查找一次,降低了查询效率;可以使用覆盖索引只查找对应的字段,从而提升查询效率

(4)避免在where字句中对字段进行表达式操作

(5)主键优化:主键按照顺序插入,尽量降低主键的长度

(6)count优化:如果count函数的参数不是null,就会累计数值加1,使用时建议使用count(*)

(7)limit优化:分页越往后的查询效率越慢,建议使用覆盖索引加子查询的方式优化

(8)update优化:行锁是根据索引加的锁,当索引失效后会变成表锁

(9)order by 优化:尽量通过索引返回数据,性能高;尽量将返回的结果在缓冲区排序

(10)group by 优化:尽量使用最左前缀法则,避免索引失效

(11)缓存查询结果:对于查询比较频繁的数据可以使用缓存来将数据存储到内存,一是可以提升查询效率,二也可以减少数据库的压力

三:表设计优化

(1)使用合适的表结构、关系和约束可以减少查询的复杂性

(2)尽量使用主从复制和读写分离,使得增删改和查询的效率最大提升

(3)建库建表时多考虑分库分表(垂直与水平)

(4)使用合适的数据类型:选择合适的数据类型可以减少存储空间然而提高查询性能

(5)正确使用事务:对于需要多个操作的事务,正确地使用事务可以提高数据一致性和性能

(6)使用EXPLAIN计划:使用EXPLAIN命令分析查询计划,可以查看查询是如何执行的,根据数据追踪可以去查找执行比较慢的SQL从而对SQL进行优调整和优化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值