MySQL之服务器性能剖析

关于mysql服务器性能,可能需要关注的点会比较多,如:如何确认服务器是否达到了性能最佳的状态,找出某条语句为什么执行不够快,以及诊断被用户描述成“停顿“,“堆积“或者“卡死“的某些间歇性疑难故障。这看起来很不简单。但是事实证明,有一个简单的方法能够从噪声中发现苗头。

这个方法就是专注于测量服务器的时间花费在哪里,使用的技术则是性能剖析。

 

mysql性能的问题,可能不同人会有不同的说法。例如:每秒查询数,cpu利用率,可扩展性  等等。

每个人在不同场景对性能有不同的理解。

但在这我们将给出一个正式的定义:

mysql性能指的是完成某件任务所需要的时间的度量,换句话说,性能即响应时间.

 

性能优化就是在一定得工作负载下尽可能的降低响应时间。

 

有人认为性能优化是降低cpu利用率,这是一个误解。资源是用来消耗并用来工作的,所以有时候消耗更多的资源能够加快查询速度。cpu利用率只是一种现象,而不是很好的可度量的目标。

同样,如果把性能优化仅仅看成提升每秒查询量,这其实只是吞吐量优化。吞吐量的提升可以看做性能优化的副产品。(吞吐量的定义是单位时间内的查询数量,这正好是我们对性能定义的倒数)

 

优化的第二原则:无法测量就无法有效的优化。所以,第一步应该测量时间花在什么地方。

不合适的测量:

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

  测量的是聚合后的信息,而被捕是目标活动本身。

例如一个常见的错误是先查看慢查询,然后又去排查整个服务器的情况来判断问题的所在。

 

完成一项任务所需要的时间可以分为两部分:执行时间和等待时间。

 

剖析MySQL查询:

  1.剖析服务器负载

    捕获mysql的查询到日志文件中

    分析查询日志

  2.剖析单条查询

    使用 show profile

    使用 show status

    使用 慢查询日志

  3.使用性能剖析

 

总结的关键字有:  响应时间,吞吐量,测量,优化,慢查询日志。

你可能感兴趣的:(mysql)