MySQL查询性能分析

剖析服务器负载方法
步骤:
1、捕获MySQL的查询到日志文件,建议使用慢查询日志
2、根据查询日志生产剖析报告,利用pt-query-digest可将日志生成报告。
根据上述方法可以定位到比较慢的sql,进行单条查询问题剖析

剖析单条查询
使用show profile测量语句耗费的时间
得到具体的慢查询后,再剖析单条查询的耗时情况

1.set proiling = 1; --开启query profile
2.执行你的查询
3.show proflies; --查看所有查询对应的profile
4.show profile for query queryId; --根据第三步的queryId获取profile的内容

可得到语句执行的每个步骤的耗时,再针对耗时进行优化。

使用show status查看计数器,它无法提供基于时间的统计
最有用的计数器包括句柄计数器、临时文件和表计数器等。

通过剖析服务器负载方法(本文第一点)获得“坏查询”后可以查看该查询的日志,慢查询日志信息较全。

诊断间歇性问题

判断是单条查询问题还是服务器问题

1、使用show global status,以较高的频率比如一秒一次执行SHOW GLOBAL STATUS,关注每秒查询数、Threads_connected和Threads_running。Threads_connectd是数据库总连接数,和show processlist相等,Threads_running是此时活跃的连接。
2、不停地捕获SHOW PROCESSLIST(和thread_connected相等,用来观察线程状态的,言外之意,就是一个连接有一个线程处理,因为它代表的也是连接数)的输出,来观察是否有大量线程处于不正常的状态或者有其他不正常的特征。
3、使用查询日志,看每秒查询数
建议,使用show golbal status及show processlist,这两者的性能消耗少。
4.查看是不是拿不到锁
SELECT * FROM information_schema.INNODB_TRX

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值