MYSQL之高性能的mysql(三)--服务器性能剖析

服务器性能剖析

性能优化简介

  数据库服务器的性能用查询的响应时间来度量,单位是每个查询花费的时间。
  完成一项任务所需要的时间可以分成两部分:执行时间和等待时间。如果要优化任务的执行时间,最好的办法是通过测量定位不同的子任务花费的时间,然后优化去掉一些子任务、降低子任务的执行频率或者提升子任务的效率。

通过性能剖析进行优化

  性能剖析是测量和分析时间花费在哪里的主要方法。性能剖析一般有两个步骤:测量任务所花费的时间;然后对结果进行统计和排序,将重要的任务排到前面。

对应用程序进行性能剖析

  NewRelic会插入到应用程序中进行性能剖析,将收集到的数据发送到一个基于Web的仪表盘,使用仪表盘可以更容易利用面向响应时间的方法分析应用性能。这样用户只需要考虑做那些正确的事情,而不用考虑如何去做。

剖析MySQL查询

剖析服务器负载

慢查询日志

  在MySQL的当前版本中,慢查询日志是开销最低、精度最高的测量查询时间的工具。需要担心的是日志可能消耗大量的磁盘空间。如果长期开启慢查询日志,注意要部署日志轮转(log rotation)工具。或者不要长期启用慢查询日志,只在需要收集负载样本的期间开启即可。从慢查询日志中生成剖析报告需要有一款好工具,建议使用pt-query-digest 。

剖析单条查询

诊断间歇性问题

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

  使用SHOW GLOBAL STATUS,使用SHOW PROCESSLIST,使用查询日志(推荐使用前两种,开销较小)

其他剖析工具

使用USER_STATISTICS表

  可以查找使用得最多或者使用得最少的表和索引,通过读取次数或者更新次数,或者两者一起排序。
  可以查找出从未使用的索引,可以考虑删除之。
  可以看看复制用户的CONNECTED_TIME 和BUSY_TIME ,以确认复制是否会很难跟上主库的进度。

使用strace

  strace 工具可以调查系统调用的情况。有好几种可以使用的方法,其中一种是计算系统调用的时间并打印出来:
 
原文地址:https://www.cnblogs.com/kujiawei/p/13857442.html