sql优化

性能下降SQL慢 执行时间长 等待时间长


原因一:数据过多 处理方案:分库分表
原因二:关联了太多的表,太多join 处理方案: SQL优化.
原因三:没有充分利用到索引 处理方案:索引建立
原因四:服务器调优及各个参数设置 处理方案:调整my.cnf
 


关联查询优化
1、保证被驱动表的join字段已经被索引
2、left join 时,选择小表作为驱动表,大表作为被驱动表。
3、inner join 时,mysql会自己帮你把小结果集的表选为驱动表。
4、子查询尽量不要放在被驱动表,有可能使用不到索引。
5、能够直接多表关联的尽量直接关联,不用子查询。

子查询优化

尽量不要使用not in  或者 not exists
用left outer join  on  xxx is null 替代


排序分组优化
ORDER BY子句,尽量使用Index方式排序,避免使用FileSort方式排序
执行案例前先清除emp上的索引,只留主键
当范围条件和group by 或者 order by  的字段出现二选一时 ,优先观察条件字段的过滤数量,
如果过滤的数据足够多,而需要排序的数据并不多时,优先把索引放在范围字段上。反之,亦然。
优化策略
增大sort_buffer_size参数的设置
增大max_length_for_sort_data参数的设置
减少select 后面的查询的字段。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值