高性能mysql读书总结_《高性能mysql》读书笔记:服务器性能剖析

本文介绍了性能优化的重要性,强调了正确测量和分析是关键。性能剖析包括执行时间和等待时间的分析,关注高消耗的任务。优化查询时要考虑成本效益,避免优化小比例的查询。文章还探讨了应用程序的性能瓶颈,如外部资源调用、数据处理和低效算法。对于MySQL查询,慢查询日志和SHOW PROFILE等工具是有效的剖析手段,帮助定位和改善慢查询。
摘要由CSDN通过智能技术生成

3.1 性能优化简介

不合适的测量方式:

1)在错误的时间启动和停止测量;

2)测量的是聚合后的信息,而不是目标活动本身;

优化任务的执行时间,最好的办法是测量定位不同的子任务花费的时间,然后优化去掉一些子任务、降低子任务的执行频率或者提升子任务的效率。

3.1.1 通过性能剖析进行优化

性能剖析一般两个步骤:

1)测量任务所花费的时间;

2)对结果进行统计和排序,将重要的任务排到前面;

性能剖析报告:

1)对相似任务进行分组汇总

2)每行记录一个任务,包括任务名、执行时间、消耗时间、平均执行时间、占全部时间百分比;

3)报告按消耗时间降序排序;

两种类型的性能剖析:

1)基于执行时间的分析;

2)基于等待时间的分析;

3.1.2 理解性能剖析

值得优化的查询

1)一些只占总响应时间比重很小的查询是不值得优化的;

2)如果优化的成本大于收益,就应该停止优化;

异常情况:执行频率低,时间占比小,但每次执行很慢,需要优化;

未知的未知:丢失的时间,实际测量时间小于任务总时间;

被掩藏的细节:平均值无法展现细节;

3.2 对应用程序进行性能剖析

性能瓶颈可能因素:

1)调用了外部资源,比如第三方服务或者搜索引擎;

2)应用需要处理大量数据;

3)循环中执行耗时操作;

4)使用了低效的算法;

3.3 剖析mysql查询

3.3.1 剖析服务器负载

慢查询日志

慢查询日志是开销最低、精度最高的测量查询时间工具。慢查询日志带来的开销可以忽略不计,但可能消耗大量的磁盘空间,建议不要长期启用慢查询日志,只在需要收集负载样本的期间开启即可。

如果没有权限使用慢查询日志,可以不断使用SHOW FULL PROCESSLIST,查看查询的开始和消失时间,计算时间间隙。

通用日志,对查询请求进行记录,很少用于性能分析。

3.3.2 剖析单条查询

主要是用SHOW STATUS, SHOW PROFILE, 检查慢查询日志的方式。

SHOW PROFILE

在服务器上执行的所有语句,都会测量其耗费的时间和其他一些查询执行状态变更相关的数据。

方法:

1)show profiles,查看所有语句的执行状态;

2)show profile for query id,查看某条语句的执行时间;

3)也可以查询INFORMATION_SCHEMA表中的,可以格式化输出各项执行时间;

SHOW GLOBAL STATUS

以较高的频率比如一秒执行一次SHOW GLOBAL STATUS命令捕获数据,问题出现时,可以通过某些计数器来发现。

SHOW PROCESSLIST

通过不停地捕获SHOW PROCESSLIST的输出,来观察是否有大量线程厨余不正常的状态或者特征。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值