服务器性能剖析

性能优化概述

性能优化是降低CPU使用率?错误,资源就是用来消耗的,新版本MySQL的InnoDB引擎对资源的利用率还增高了,所以这不是一个好的衡量标准。

提升每秒查询量?其实就是吞吐量,但吞吐量也只是性能优化的副产品,恰好是性能的倒数。

降低响应时间,这才是优化的重点,但容易误解的是影响响应时间的因素有很多,我们应该关注于最耗时的几个操作。

性能分析有几点比较重要,值得优化的查询、异常、未知错误、隐藏的细节,好的工具可以获取足够的信息。

对应用进行性能剖析

数据库有时并不是主要的瓶颈,因此最好从整个应用的角度进行测量。

性能剖析本身会导致应用变慢,但相对之后的优化,这是值得的。

有很多SaaS工具软件支持应用剖析。

剖析MySQL查询

慢查询日志是官方提供的性能分析工具,配置long_query_time=0来开启捕获所有查询,响应时间单位可达微秒级。

慢查询日志几乎没什么性能影响,但注意对磁盘消耗较大,通常只在需要剖析时开启一段时间慢查询。

剖析单条查询

设置SET PROFILING = 1;然后通过SHOW PROFILES;获得ID,通过SHOW PROFILE FOR QUERY [ID]查看详细信息。

// 无法直接排序结果,但可通过INFOMATION_SCHEMA中对应的表来排序结果
SELECT STATE, SUM(DURATION) AS Total_R
FROM INFORMATION_SCHEMA.PROFILING
WHERE QUERY_ID = 7
GROUP BY STATE
ORDER BY Total_R DESC;

SHOW STATUS是一个计数器,并不能反映时间消耗,但可以用作参考。

SHOW STATUS
WHERE Variable_name LIKE 'Handler%'
OR Variable_name LIKE 'Created%';

总结

  1. 定义性能最有效的方法就是响应时间;
  2. 无法测量就无法有效优化;
  3. 测量最好从应用开始而不是数据库,即使问题出现在数据库;
  4. 完整的测量需要分析大量数据,找些工具最好;
  5. 剖析报告丢弃了很多细节,不要完全依赖;
  6. 消耗时间的操作有两种:工作和等待;
  7. 优化和提升是两回事,若提升的成本超过收益就应该停止;
  8. 决策应该基于数据而不是直觉。

高性能MySQL(三)的更多相关文章

  1. 【高性能Mysql 】读书笔记(三)

    第5章 创建高性能的索引 本文为<高性能Mysql 第三版>第四章读书笔记,Mysql版本为5.5 索引基础 索引的重要性:找一本800面的书的某一段内容,没有目录也没有页码(页码也可类比 ...

  2. 高性能Mysql主从架构的复制原理及配置详解

    温习<高性能MySQL>的复制篇. 1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台 ...

  3. 1121高性能MySQL之运行机制

    本文来自于拜读<高性能MySQL(第三版)>时的读书笔记作者:安明哲转载时请注明部分内容来自<高性能MySQL(第三版)> MySQL的逻辑构架 MySQL服务器逻辑架构 最上 ...

  4. 转:高性能Mysql主从架构的复制原理及配置详解

    温习<高性能MySQL>的复制篇. 1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台 ...

  5. 高性能Mysql主从架构的复制原理及配置详解(转)

    温习<高性能MySQL>的复制篇. 1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台 ...

  6. 高性能mysql主存架构

    原文:高性能mysql主存架构 MySQL Replication(Master与Slave基本原理及配置) 主从mysql工作原理: 1:过程: (1)Mysql的复制(replication)是一 ...

  7. 《高性能Mysql》讲聚簇索引

    <高性能Mysql>原文 聚簇索引如下图为聚簇所有的存储方式,聚簇实际不是一种索引,而是一种数据的存储方式,InnoDB的聚簇事假在同一个结构中保存了B-Tree索引和数据行. 当表有聚簇 ...

  8. 高性能MySQL中的三星索引

    高性能MySQL中的三星索引 我对此提出了深深的疑问: 一星:相关的记录指的是什么??(相关这个词很深奥,“相关部门”是什么部门) 二星:如果建立了B-Tree(B+Tree)索引,数据就有序了.三星 ...

  9. 高性能mysql:创建高性能的索引

    本文系阅读<高性能MySQL>,Baron Schwartz等著一书中第五章 创建高性能的索引的笔记,索引是存储引擎用于快速找到记录的一种数据结构. 索引对于良好的性能非常关键,尤其是当表 ...

  10. 《高性能MySQL》 读书总结

    目录: 第一章.MySQL架构与历史 第二章.MySQL基准测试 第三章.服务器性能剖析 第四章.Schema与数据类型优化 第五章.创建高性能的索引 第六章.查询性能优化 第七章.MySQL高级特性 ...

随机推荐

  1. input标签不能设置height

    首先input是内联标签(inline) inline元素设置width.height属性无效 可以通过设置display:inline-block ,则内联标签可以设置width和height,但是 ...

  2. 外星人(bzoj 2749)

    Description Input Output 输出test行,每行一个整数,表示答案. Sample Input 1 2 2 2 3 1 Sample Output 3 HINT Test< ...

  3. UVa12333 Revenge of Fibonacci

    高精度 trie 暴力预处理出前100000个fibonacci数,将每个数的前40位数字串插入到trie中,记录每个结点最早可以由哪个数字串到达. 然后依次回答询问即可. 存fibonacci数的数 ...

  4. 洛谷 P 1514 引水入城==Codevs 1066

    题目描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个N 行M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个海拔高度. ...

  5. 《Vim实用技巧》第2版读书笔记

    学习前的建议: 一.如果你需要一个功能强大的文本编辑器,速度飞快.使用方便.代码补全.编程强大.定制性强,Vim就是你需要的: 二.学习入门曲线陡峭,但是使用后期异常简单,效率超高: 三.号称可以跟上 ...

  6. Linux Glibc幽灵漏洞紧急修补方案【转】

    转自:http://blog.csdn.net/chen19870707/article/details/43560823 幽灵漏洞是Linux glibc库上出现的一个严重的安全问题,他可以让攻击者 ...

  7. hdu 5690(模运算)

    All X Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

  8. Lucene.net站内搜索-最简单搜索引擎代码

    Lucene.Net核心类简介 先运行写好的索引的代码,再向下讲解各个类的作用,不用背代码. (*)Directory表示索引文件(Lucene.net用来保存用户扔过来的数据的地方)保存的地方,是抽 ...

  9. Codeforces 919 B. Perfect Number

      B. Perfect Number   time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  10. R语言集合函数

    union intersect setdiff(A,B):A-B A %in% B :A是否存在于B