博客
关于我
高性能MySQL——第三章服务器性能剖析
阅读量:540 次
发布时间:2019-03-09

本文共 846 字,大约阅读时间需要 2 分钟。

常见的三个性能相关的服务请求

  • 如何确认服务器是否达到了性能最佳的状态
  • 找出某条语句为什么执行不够快
  • 诊断被用户描述成“停顿”、“堆积”或者“卡死”的某些间歇性疑难故障
  • 事实证明,可以通过一种简单的方法来发现一些苗头:

    专注于测量服务器的时间花费在哪,使用的技术是性能剖析。

    性能优化简介

    这里将性能定义为:完成某件任务所需的时间度量,即响应时间。性能优化假设就是在一定的工作负载下尽可能降低响应时间。

    如果目标是降低响应时间,那么就需要理解为什么服务器执行查询需要这么多时间,然后去减少或者消除那些对获得查询结果来说不必要的工作。所以无法测量就无法有效地优化。

    完成一项任务所需要的时间分为:

    • 执行时间

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

    • 等待时间

      优化等待时间相对复杂。

    如何确定哪些子任务需要优化,就通过性能剖析。

    性能剖析

    性能剖析是测量和分析时间花费在哪主要方法。

    一般有两个步骤:

    • 测量任务所花费的时间;
    • 然后对结果进行统计和排序,将重要的任务排到前面。

    主要有两种类型的性能剖析:

    • 基于执行时间的分析

      研究的是什么任务执行时间最长
    • 基于等待的分析

      判断任务在什么地方被阻塞的时间最长

    当基于执行时间的分析发现一个任务需要花费太多时间的时候,应该深入去分析一下,可能会发现某些“执行时间”实际上是在等待。

    理解性能剖析

    MySQL性能剖析会将最重要的任务展示在前面,但有时没有显示的信息也很重要,如

    • 值得优化的查询

      一些只占总响应时间比重很小的查询是不值得优化的。如果优化的成本大于收益,就应当停止优化。
    • 异常情况

      比如某些任务执行次数很少,但每次执行都非常慢,这样总响应时间占比很小。
    • 未知的未知

      存在“丢失的时间”
    • 被掩藏的细节

      性能剖析无法显示所有响应时间的分布。

    剖析MySQL查询

    可以剖析整个数据库服务器,定位到具体需要优化的查询后,可以钻取下去对这些查询单独剖析。

    剖析服务器负载

    转载地址:http://sfeiz.baihongyu.com/

    你可能感兴趣的文章
    Mysql学习总结(28)——MySQL建表规范与常见问题
    查看>>
    Mysql学习总结(29)——MySQL中CHAR和VARCHAR
    查看>>
    Mysql学习总结(2)——Mysql超详细Window安装教程
    查看>>
    Mysql学习总结(30)——MySQL 索引详解大全
    查看>>
    Mysql学习总结(31)——MySql使用建议,尽量避免这些问题
    查看>>
    Mysql学习总结(33)——阿里云centos配置MySQL主从复制
    查看>>
    Mysql学习总结(35)——Mysql两千万数据优化及迁移
    查看>>
    Mysql学习总结(36)——Mysql查询优化
    查看>>
    Mysql学习总结(37)——Mysql Limit 分页查询优化
    查看>>
    Mysql学习总结(38)——21条MySql性能优化经验
    查看>>
    Mysql学习总结(39)——49条MySql语句优化技巧
    查看>>
    Mysql学习总结(3)——MySql语句大全:创建、授权、查询、修改等
    查看>>
    Mysql学习总结(40)——MySql之Select用法汇总
    查看>>
    Mysql学习总结(41)——MySql数据库基本语句再体会
    查看>>
    Mysql学习总结(42)——MySql常用脚本大全
    查看>>
    Mysql学习总结(43)——MySQL主从复制详细配置
    查看>>
    Mysql学习总结(44)——Linux下如何实现mysql数据库每天自动备份定时备份
    查看>>
    Mysql学习总结(45)——Mysql视图和事务
    查看>>
    Mysql学习总结(46)——8种常被忽视的SQL错误用法
    查看>>
    Mysql学习总结(48)——MySql的日志与备份还原
    查看>>