sql 优化

1.通过explain 解释执行计划,查看sql相应的索引有没有执行,尤其是where条件后面的条件,和通过join连接表时的关联条件有没有添加索引,如果没有添加索引,就加上索引。

2.如果有索引但是没有走,可以使用强制索引试试。

3.join后的关联条件,有索引但是没有走,可能有以下几种情况,2个字段的字段类型不一致,比如一个是int类型,一个是String类型,或者2个字段的字符集编码不一致等。

4.使用select时,不要select * ,列出所要查询的字段名,效率更高些。

5.限制条件中尽量少使用or,因为如果or两边的字段有一个没有添加索引,那么or两边的字段都不走索引。

6.如果排序字段没有用到索引,那么就尽量少排序或不排序。

7.使用复合索引,要遵循最左前缀法则。否则有可能不走索引。

8.避免在where子句中对字段进行null值判断,会使引擎放弃索引而进行全表扫描。

9.如果能使用inner join就不使用left join。

10.where条件中,尽量保证条件两边的参数类型一致。

11.where条件后的日期条件尽量使用拼接而少使用dateFormat函数,会使索引失效。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值