Mysql慢查询定位和优化实践分享

本文介绍如何通过开启慢查询日志来定位并优化MySQL中的慢SQL,包括调整my.cnf配置文件参数、使用cacti监控工具及不同查询优化方法对比等。

调优目标:提高io的利用率,减少无谓的io能力浪费。

1、打开慢查询日志定位慢sql:

my.cnf:

slow_query_log

slow_query_log_file=mysql.slow

long_query_time=2(超过2s的sql会记录下来)

cacti监控工具

sed -n '/ 2017-04-08 20:50:37 /,/end/p' mysql.slow>slow.log

mysqldumpslow -s t -t slow.log

2sql调优方法:

1)not in子查询优化

尽量避免子查询select * from a where id not in(select id from b);

select * from a where not exists(select id from b WHERE id ='100')

建议使用表连接:

select * from a left join b on a.id=b.id WHERE b.id='100'

测试如下:第三张图效率最高

<1>吞吐量197

<2>吞吐量211

<3>吞吐量305

转载于:https://www.cnblogs.com/toSeeMyDream/p/6860971.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值