高性能MySQL-笔记1-基础数据获取分析

18 篇文章 0 订阅
10 篇文章 0 订阅

高性能MySQL-笔记1-基础数据获取分析

第三方存储引擎

  • Infobright:数据仓库
    • 超高的查询统计优化和压缩比例(10:1~40:1),
    • 引入了列存储方案,
    • 不需要建索引,使用内部知识网格节点。
    • 查询性能高:百万、千万、亿级记录数条件下,同等的SELECT查询语句,速度比MyISAM、InnoDB等普通的MySQL存储引擎快5~60倍。(TB级数据)
    • 不支持数据更新:社区版Infobright只能使用“LOAD DATA INFILE”的方式导入数据,不支持INSERT、UPDATE、DELETE。
    • 不支持高并发:只能支持10多个并发查询。
  • TokuDB
    • 专为在写入密集型工作负载上实现高性能而设计,可通过分形树索引实现。
    • 适合像 Zabbix 这种高 INSERT,少 UPDATE 的应用场景

基准测试

工具:sysbench (工具还有很多的,例如:TPCC-MYSQL )

作用:测试系统的硬件性能,也可以用来对数据库进行基准测试;【P58】

感觉上没什么用,通常的性能瓶颈都是在特定表的查询上。

在调整MySQL系统配置【内存池大小等】的时候,可以使用基准测试验证性能提升比例。


性能剖析

performance_schema

提供了一种在数据库运行时实时检查server的内部执行情况的方法

performance_schema通过监视server的事件来实现监视server内部运行情况, “事件”就是server内部活动中所做的任何事情以及对应的时间消耗,利用这些信息来判断server中的相关资源消耗在了哪里?一般来说,事件可以是函数调用、操作系统的等待、SQL语句执行的阶段(如sql语句执行过程中的parsing 或 sorting阶段)或者整个SQL语句与SQL语句集合。事件的采集可以方便的提供server中的相关存储引擎对磁盘文件、表I/O、表锁等资源的同步调用信息。

信息表:【有很多】

events_statements_current当前语句事件表
events_statements_history历史语句事件表
events_statements_history_long长语句历史事件表

记录一些简单使用【未测试】:

来源:http://blog.itpub.net/24930246/viewspace-2644172/

打开等待事件的采集器配置项开关,需要修改setup_instruments 配置表中对应的采集器配置项。

update setup_instruments set enabled = 'YES', timed = 'YES'where name like 'wait%';

打开等待事件的保存表配置开关,修改修改setup_consumers 配置表中对应的配置项。

update setup_consumers set enabled = 'YES' where name like '%wait%';

配置好之后,我们就可以查看server当前正在做什么,可以通过查询events_waits_current表来得知,该表中每个线程只包含一行数据,用于显示每个线程的最新监视事件(正在做的事情);

我们大多数时候并不会直接使用performance_schema来查询性能数据,而是使用sys schema下的视图代替;

MySQL percona-toolkit [最常用工具]

官网:https://www.percona.com/doc/percona-toolkit/2.2/index.html
博客参考:
https://blog.csdn.net/wanbin6470398/article/details/83178755
https://blog.csdn.net/demonson/article/details/87270061

超级好像的工具的感觉,看了下提供的一些命令,相当的丰富。

这个工具,估计真的需要好好研究使用一下,很装逼的样子(▼へ▼メ)

作用:Percona Toolkit是Percona(http://www.percona.com/)的支持人员使用的高级命令行工具的集合,以执行各种MySQL和系统任务,这些任务很难或太复杂而无法手动执行。

常用的功能介绍【部分】:【https://blog.csdn.net/demonson/article/details/87270061】

  • pt-archive:数据库归档
  • pt-duplicate-key-checker:用来检查mysql表是否有重复的索引和外键。
  • pt-mysql-summary:MySQL的状态和配置统计信息。
  • pt-query-digest:分析mysql慢查询的一个工具。※
  • pt-stalk : 监控系统信息,可配置各种阀值
  • 主从数据库相关
  • 权限,磁盘IO信息等等
Oprofile

是linux上的性能监测工具,通过CPU硬件提供的性能计数器对事件进行采样,从代码层面分析程序的性能消耗情况,找出程序性能的问题点。

用于,数据库性系统性能使用占比。来分析,性能问题的瓶颈。

iostat

不知道是啥,书里是用来看io流情况的。╮(╯_╰)╭ [P100]


Mysql查询分析

工具:慢查询日志+MySQL percona-toolkit - pt-query-digest

作用:查询整个MySQL的查询性能,并定位需要优化的查询。

对于单条SQL的分析,使用Nacicat Premium 工具里面的分析就很全面了。

查看慢日志统计:

按秒:
awk '/^# Time:/{print $3,$4,c;c=0}/^# User/{c++}' mysql-slow-3306.log

按天:
grep  Time: mysql-slow-3306.log | awk '{print $3}'|awk '{a[$1]++}END{for (j in a) print j,": " a[j]}' | sort -nrk2 -t: 

按分钟:
grep  Time: mysql-slow-3306.log | awk '{print $3,$4}'|awk -F : '{print $1,$2}' | awk -F : '{a[$1]++}END{for (j in a) print j,": " a[j]}' | sort -nrk2 -t:

按小时:
grep  Time: mysql-slow-3306.log | awk '{print $3,$4}'|awk -F : '{print $1}' | awk -F : '{a[$1]++}END{for (j in a) print j,": " a[j]}' | sort -nrk2 -t:

查看消耗的内存(需要分配的内存):

select event_name,SUM_NUMBER_OF_BYTES_ALLOC/1024/1024 from memory_summary_global_by_event_name order by SUM_NUMBER_OF_BYTES_ALLOC desc limit 10;

参考


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小_杭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值