性能优化

基于响应时间

性能剖析

测量任务所花费的时间

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

时间分类

执行时间

等待时间

理解性能剖析

值得优化的查询

  • 一些只占总响应时间比重很小的査询是不值得优化的
  • 如果优化的成本大于优化的收益,则应停止优化

异常情况

  • 对于某些执行时间过长影响用户体验

被隐藏的细节

  • 如平均值会掩盖部分异常的情况

    • 参考工具:pt-query-digest

性能测量工具

New Relic、instrumentation-for-php

剖析MySQL查询

剖析服务器负载

  • 借助慢查询日志定位到需要优化的SQL

    • 分析工具:pt-query-digest

剖析单条查询

  • 打开profile(SET profiling =1),再使用show profiles指令,可以测量出耗费的时间和其他一些査询执行状态变更相关的数据(仅在当前会话有效)

    • show profiles

      • show profile
  • show profile无法按查询时间对show profile中的条目进行排序,定位真正耗费时间长的项比较困难,可以利用INFORMATION_SCHEMA中的表进行查询并排序

    • SET @query_id =1;
      SELECT STATE, SUM(DURATION) AS Total_R, -> ROUND( -
      -> 100 * SUM(DURATION) /
      -> (SELECT SUM(DURATION)
      -> FROM INFORMATION SCHEMA.PROFILING
      -> WHERE QUERY_ID =~@query id
      -> ),2) AS Pct R,~ ~
      -> COUNT() AS Calls,
      -> SUM(DURATION) / COUNT(
      ) AS “R/CalT’ -> FROM INFORMATION SCHEMA.PROFILING -> WHERE QUERY_ID =~@query_id -> GROUP BY STATE ~
      -> ORDER BY Total_R DESC;
  • 通过SHOW STATUS/SHOW GLOBAL STATUS查看会话/全局计数信息

  • 使用Performance Schema

诊断间歇性问题

  • 判断是单条语句问题还是服务器问题

    • SHOW GLOBAL STATUS打印出当前线程序数以及当前正在执行查询的线程数,(借助mysqladmin工具可以每1秒打印一次数据)并绘制成曲线,通过尖峰或低谷分析

      • 通常有两种原因:第一种是新查询等待老查询的锁导致。第二种是有大量的SQL涌进数据库
    • 不停捕获SHOW PROCESSLIST的结果,观察是否有大量线程处于不正常的状态,高版本还可通过INFORMATION_SCHEMA的processlist表

      • 书中给出了两个例子:第一种是INNODB内部争用脏块与频繁刷新导致;第二种是MYSIAM锁表导致
    • 使用查询日志,开启慢查询日志并设置long_query_time=0

  • 捕获诊断数据

    • 诊断阈值的设置。需要保证不会误报,又不会漏检,可借助pt-stalk工具

    • 收集数据

      • 如果是执行时间较长,则进行剖析分析。可使用tcpdump
      • 如果是等待时间较长,则进行等待分析.可使用GDB堆栈跟踪
      • 如果是未知问题,则两种分析的数据均要收休
      • 可借助pt-collect工具
    • 解释结果数据

      • 有目的地查看报告

        • 检査问题是否真的发生
        • 是否有非常明显的跳跃性变化
      • 问题分类

        • 查询异常的事件或行为
        • 对于无法解释的问题,打包交由技术支持人员
  • 一个诊断案例

《高性能MySQL》 第三章 服务器性能剖析 读书笔记相关推荐

  1. 《高性能MySQL》——服务器性能剖析(笔记)

    文章目录 三.服务器性能剖析 3.1 性能优化简介 3.1.1 通过性能剖析进行优化 3.1.2 理解性能剖析 3.2 对应用程序进行性能剖析 3.3 剖析MySQL查询 3.3.1 剖析服务器负载 ...

  2. 高质量解读《高性能mysql》——第3章服务器性能剖析

    前言: 高效读书,一张逻辑图带你读懂.读薄书中重点. 深入学习MySQL系列,解读的目的是为了把书读薄,抽出重点进行梳理.理解.运用.因大量文字很容易让人觉得枯燥无味,为此博主花费一定精力和时间整理输 ...

  3. 《Visual C# 从入门到精通》第三章使用判断语句——读书笔记

    第3章 使用判断语句 3.1 使用布尔操作符 布尔操作符是求值为true或false的操作符. C#提供了几个非常有用的布尔操作符,其中最简单的是NOT(求反)操作符,它用感叹号(!)表示.!操作符求 ...

  4. 高性能mysql第三版读书笔记

    第1章 MySQL 架构与历史 MySQL最重要.最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理(Query Processing)以及其他系统任务(Server Task)和数据的存储 ...

  5. 读薄《高性能MySql》(三)索引优化

    读薄<高性能MySql>(一)MySql基本知识 读薄<高性能MySql>(二)Scheme与数据优化 读薄<高性能MySql>(三)索引优化 读薄<高性能M ...

  6. MySQL各种优化基于《高性能MySQL第三版》

    [TOC] MySQL各种优化 查询优化 查询优化器模块 查询优化器的任务是发现执行 SQL 查询的最佳方案.大多数查询优化器,要么基于规则.要么基于成本. 大多数查询优化器,包含 MySQL 的查询 ...

  7. MySQL 第三章3.1 数据库查询(where)

    MySQL 第三章3.1 数据库查询(where) 3.1.3 查询条件 where子句     where 子句会根据条件对from 子句一行一行的进行判断,当条件为true时,这行就被包含到whe ...

  8. Oracle 19c VLDB and Partitioning Guide 第2章:Partitioning Concepts 读书笔记

    本文为Oracle 19c VLDB and Partitioning Guide第2章Partitioning Concepts的读书笔记. 分区可提高各种应用程序的性能.可管理性和可用性,并有助于 ...

  9. Oracle 19c VLDB and Partitioning Guide 第4章:分区管理 读书笔记

    本文为Oracle 19c VLDB and Partitioning Guide第4章Partition Administration的读书笔记. 使用分区表和索引时,分区管理是一项重要任务. 本章 ...

最新文章

  1. 让Hinton后悔投少了的AI公司:吴恩达弟子创办,李飞飞也是投资人
  2. [2778]小明的花费预算 (二分查找)SDUT
  3. Kubernetes List-Watch
  4. 深度学习(二十八)——SOM, Group Normalization, MobileNet, 花式卷积进阶
  5. xss challenge 解题思路(1-3)
  6. OpenJudge NOI 1.7 30:字符环
  7. Maple: 多项式相乘
  8. 单片机ADC采样算法----递推平均值采样法
  9. Jenkins在Linux环境安装
  10. 电视盒子刷鸿蒙系统,家里的智能电视能装鸿蒙系统吗?鸿蒙系统有哪些优势?...
  11. Kinect for Windows SDK v2.0 开发笔记 (七)语音识别(上)
  12. 【Proteus仿真】Arduino UNO+OLED12864 I2C接口跑图形库
  13. axios请求拦截器 和 响应拦截器
  14. C语言中的标识符有:关键字、预定义标识符、用户标识符
  15. Java基础三个排序详解_继承粗解语法关键字分析
  16. Revit二次开发之按照标高过滤元素
  17. GPU大百科全书 第六章 谁也离不开的缓冲
  18. 新手必需知道的10个优秀的日志分析工具
  19. osg_操作器、碰撞检测、上楼梯篇
  20. 在微信小程序中,使用wxParse插件解析HTML/md富文本

热门文章

  1. OpenGL超级宝典(第7版)笔记11 帧缓存运算 计算着色器 清单 3.13
  2. 论文阅读|《面向多目标柔性作业车间调度的强化学习NSGA-Ⅱ算法》
  3. 虾皮Shopee上货铺货助理工具
  4. python的接口和抽象类
  5. 平面设计常见的配色方案及色标
  6. 大数据面试之hive重点(二)
  7. 拯救脂肪肝第一步!以飞桨3D医疗影像分割方案MedicalSeg自主诊断脂肪肝
  8. 如何给Mac挑选外接显示器?苹果外接显示器选购指南
  9. 【报告分享】2020小红书年中美妆洞察报告.pdf(附下载链接)
  10. 三酷猫学python_python学习06循环