mysql report教程_mysqlreport安装&使用

本文介绍mysqlreport工具的安装步骤及使用方法,该工具能够优化MySQL的状态报告,使其更具可读性。通过Perl环境及DBI、DBD-MySQL模块安装后,mysqlreport能收集并分析数据库状态,提供如缓冲池利用率、查询类型统计等详细信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysqlreport安装&使用

2020-12-17

mysql命令行中经常使用下面的指令来获取当前数据库的实时状态:

mysql>show status;

mysql>show innodb status;

但是他们的显示结果不太友好,我们需要更好的更加人性化的分析结果,而不是堆出来一堆数字。mysqlreport是一个第三方的Mysql状态报告工具,它把mysql的show status 和 show innodb status的结果进行一系列的后期处理,让可读性更强,更友好。 下面是mysqlreport的安装过程:

MySQLReport 是用perl语言编写,所以想要运行它首先需要安装perl环境;它还要与MySQL数据库连接,所以还需要安装数据库接口 DBI 和 数据库驱动 DBD-MySQL 。

安装DBI

yum -y install perl-DBI

安装DBD-mysql

yum -y install perl-DBD-MySQL

安装&运行mysqlreport

#下载mysqlreport tgz

wget http://pkgs.fedoraproject.org/repo/pkgs/mysqlreport/mysqlreport-3.5.tgz/33a345f5e2c89b083a9ff0423f7fd7b4/mysqlreport-3.5.tgz#解压到目录mysqlreport

tar -zxvf download/mysqlreport-3.5.tgz -C mysqlreport/

#使用mysqlreport收集信息

./mysqlreport --user=root --password=123456 --port 3306 --host=101.133.239.204 --outfile=/usr/local/mysqlreport/report/mysqlreport20201217.txt

mysqlreport20201217.txt内容

MySQL 8.0.21 uptime 8 22:24:56 Thu Dec 17 14:36:11 2020__Key_________________________________________________________________

Buffer used0 of 8.00M %Used: 0.00

Current 1.46M %Usage: 18.24Write hit0.00%

Read hit 0.00%__ Questions ___________________________________________________________

Total46.30k 0.1/s

Com_25.05k 0.0/s %Total: 54.09DMS16.45k 0.0/s 35.54COM_QUIT6.60k 0.0/s 14.25

-Unknown 1.80k 0.0/s 3.88Slow10 s 0 0/s 0.00 %DMS: 0.00 Log:

DMS16.45k 0.0/s 35.54

SELECT 16.43k 0.0/s 35.50 99.88

UPDATE 17 0.0/s 0.04 0.10

INSERT 2 0.0/s 0.00 0.01

REPLACE 0 0/s 0.00 0.00

DELETE 0 0/s 0.00 0.00Com_25.05k 0.0/s 54.09set_option24.05k 0.0/s 51.95show_status689 0.0/s 1.49show_variab43 0.0/s 0.09__SELECT andSort _____________________________________________________

Scan6.34k 0.0/s %SELECT: 38.59Range0 0/s 0.00

Full join 9 0.0/s 0.05Rangecheck 0 0/s 0.00

Full rng join 0 0/s 0.00Sort scan123 0.0/s

Sort range0 0/s

Sort mrg pass0 0/s

__TableLocks _________________________________________________________

Waited0 0/s %Total: 0.00Immediate710 0.0/s

__ Tables ______________________________________________________________Open 360 of 4000 %Cache: 9.00Opened488 0.0/s

__ Connections _________________________________________________________Max used 86 of 100 %Max: 86.00Total8.16k 0.0/s

__ CreatedTemp________________________________________________________Disk table 0 0/sTable 1.44k 0.0/s Size: 16.0MFile 9 0.0/s

__ Threads _____________________________________________________________

Running2 of 31Cached55 of 100 %Hit: 98.95Created86 0.0/s

Slow0 0/s

__ Aborted _____________________________________________________________

Clients3.13k 0.0/s

Connects171 0.0/s

__ Bytes _______________________________________________________________

Sent21.99M 28.5/s

Received10.60M 13.7/s

__ InnoDB Buffer Pool __________________________________________________

Usage74.61M of 128.00M %Used: 58.29

Read hit 99.99%Pages

Free3.42k %Total: 41.71Data4.77k 58.18 %Drty: 0.00Misc9 0.11Latched0.00Reads50.57M 65.5/sFrom file 2.81k 0.0/s 0.01Ahead Rnd0 0/s

Ahead Sql0/s

Writes1.47M 1.9/s

Flushes4.66k 0.0/s

Wait Free0 0/s

__ InnoDB Lock _________________________________________________________

Waits4 0.0/sCurrent 0Time acquiring

Total204033ms

Average51008msMax 51012ms

__ InnoDB Data, Pages, Rows ____________________________________________

Data

Reads3.23k 0.0/s

Writes23.27k 0.0/s

fsync5.74k 0.0/s

Pending

Reads0Writes0fsync0Pages

Created2.44k 0.0/sRead 3.14k 0.0/s

Written5.49k 0.0/s

Rows

Deleted0 0/s

Inserted393.22k 0.5/sRead 3.84G 5.0k/s

Updated131.08k 0.2/s

InnoDB Lock 可通过以下方式产生

打开一个navicat窗口(窗口1),输入以下命令使得该窗口提交命令后不自动提交

set @@autocommit = 0; #0为不自动提交 1位自动提交select @@autocommit;

窗口1 执行以下语句

update student set age=14 where id = 00000000000000000001;

在新窗口(窗口3)执行以下语句查看事务表信息表信息

select * from information_schema.INNODB_TRX;

40c36468ab718dd49eee660ba9e67024.png

新建窗口(窗口2),输入更改语句,引起所冲突

update student set age=14 where id = 00000000000000000001;

ae24464cce5be8a769da0992e283cb38.png

窗口3执行以下语句查看事务表信息表信息,可以看到trx_state为LOCK WAIT。

LOCK WAIT有时间超时设置,超过会回滚

当窗口1 执行命令 commit后事务结束,5545这条记录也会清空,若5447没有超时,也会执行成功,故这条记录也会清空。

ea72b2febf10ac50f0f239d67ea13cab.png

参考

InnoDB Lock

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值