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

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

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

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

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

    性能优化简介

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

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

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

    • 执行时间

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

    • 等待时间

      优化等待时间相对复杂。

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

    性能剖析

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

    一般有两个步骤:

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

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

    • 基于执行时间的分析

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

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

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

    理解性能剖析

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

    • 值得优化的查询

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

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

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

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

    剖析MySQL查询

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

    剖析服务器负载

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

    你可能感兴趣的文章
    百度视觉技术部人脸检测方向招聘实习生~北京
    查看>>
    「深度学习知识体系总结(2021版)」开放下载了!
    查看>>
    亚马逊招聘实习生,ML、CV、机器人和语音处理领域
    查看>>
    Python 使用pymongo操作mongodb库
    查看>>
    ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED
    查看>>
    c++继承与派生习题答案
    查看>>
    PROTEUS编译C51程序报L121错误的解决方法
    查看>>
    虚拟机Centos6开机黑屏解决方法
    查看>>
    linux下达梦数据库安装和使用步骤
    查看>>
    2024:【例4.10】末两位数
    查看>>
    第123天学习打卡(Redis 测试性能 基础知识 Redis-Key String List)
    查看>>
    “ModuleNotFoundError: No module named ****“问题分析和解决思路
    查看>>
    Linux系统部署Grafana
    查看>>
    限时删!字节总监总结一套目标检测、卷积神经网络和OpenCV学习资料(教程/PPT/代码)...
    查看>>
    设计模式-软件设计规则
    查看>>
    python中的循环—for循环
    查看>>
    Java-类加载过程
    查看>>
    BUU-MISC-认真你就输了
    查看>>
    BMZ-MISC-解不开的秘密
    查看>>
    BUU-MISC-caesar
    查看>>