java多线程    Java入门    vsftp    ftp    linux配置    centos    FRP教程    HBase    Html5缓存    webp    zabbix    分布式    neo4j图数据库    

mysqlreport 安装,报表详解,mysql性能优化

yum install mysqlreport

mysqlreport --host=java-er.com --user=admin --password=****

MySQL 5.1.73 uptime 0 6:39:54 Thu Jul 12 01:08:23 2018
__ Key _________________________________________________________________
# 在my.cnf文件中的key_buffer_size定义索引缓存的大小, 缺省是8M, 可考虑设置为512M

[mysqld]
 key_buffer_size = 512M

Buffer used 1.08M of 8.00M %Used: 13.52
Current 2.53M %Usage: 31.68
Write hit 99.14%
Read hit 99.44%

__ Questions ___________________________________________________________

# MySQL自启动以来一共处理了多少个请求,这里是189390个请求,平均每秒是7.9个

Total 189.39k 7.9/s
DMS 171.74k 7.2/s %Total: 90.68
# DMS 数据操作语句

Com_ 11.18k 0.5/s 5.90
COM_QUIT 6.70k 0.3/s 3.54
-Unknown 228 0.0/s 0.12
Slow 10 s 0 0/s 0.00 %DMS: 0.00 Log: OFF
# Slow 慢查询日志,查询超过10s是慢查询日志,一般设置为1s 必须开启mysql 慢日志如何开启,看这里

DMS 171.74k 7.2/s 90.68
SELECT 154.19k 6.4/s 81.41 89.78
UPDATE 9.76k 0.4/s 5.15 5.68
INSERT 7.72k 0.3/s 4.08 4.50
DELETE 73 0.0/s 0.04 0.04
REPLACE 0 0/s 0.00 0.00
Com_ 11.18k 0.5/s 5.90
set_option 6.97k 0.3/s 3.68
show_fields 3.48k 0.1/s 1.83
show_tables 289 0.0/s 0.15

__ SELECT and Sort _____________________________________________________

Scan 82.06k 3.4/s %SELECT: 53.22
# 全表扫描,数值越低越好 0.0/s 最好

Range 8.84k 0.4/s 5.73
# 范围查询

Full join 384 0.0/s 0.25
# 联合查询全表扫描

Range check 0 0/s 0.00
Full rng join 0 0/s 0.00
Sort scan 23.55k 1.0/s
Sort range 4.51k 0.2/s
Sort mrg pass 0 0/s

__ Table Locks _________________________________________________________
# 表锁报表,MyISAM是表锁

Waited 7 0.0/s %Total: 0.00
# 锁等待,总数不要超过10%,否则对性能有很大的影响

Immediate 187.11k 7.8/s
# 总数

__ Tables ______________________________________________________________
# 这里有两个值比较重要。一个是表缓存使用率,哪怕高到100%都行。不过要是真高到100%了,可能你的
# ’table_cache’设置已经不够了,赶紧加大吧。
# 第二个是当前打开表的比率,这个也能协助判断’table_cache’设置是否合理。一般这个值应该小于每秒
# 1次。不过一个负载比较高而又运行的还不错的mysql,可能能达到每秒打开7次表,依然保持100%的

[mysqld]
table_open_cache = 1000

Open 64 of 64 %Cache: 100.00
Opened 1.13k 0.0/s

__ Connections _________________________________________________________
# 并发最大151,并发最大数是9
# 如果最大连接数曾经接近过100%,请加大’max_connection’设置。不过事实上,默认的100已经足够绝大多数
# 哪怕相当繁忙的mysql使用了,盲目加大这个设置其实不对。一个mysql链接持续1秒钟,100个就是足足100秒
# 。所以如果连接数太高,或者说一直在慢慢涨,问题很可能在别的地方,比如慢查询、糟糕的索引、甚至DNS
# 解析太慢。在修改这个数的事情,还是先去研究一下为什么100个还不够呢
Max used 9 of 151 %Max: 5.96
Total 6.70k 0.3/s

__ Created Temp ________________________________________________________
Disk table 7.52k 0.3/s
Table 27.16k 1.1/s Size: 16.0M
File 5 0.0/s

__ Threads _____________________________________________________________
Running 1 of 1
Cached 0 of 0 %Hit: 0.01
Created 6.70k 0.3/s
Slow 0 0/s

__ Aborted _____________________________________________________________
Clients 0 0/s
Connects 3 0.0/s

__ Bytes _______________________________________________________________
Sent 268.71M 11.2k/s
Received 31.84M 1.3k/s

__ InnoDB Buffer Pool __________________________________________________
# innodb_buffer_pool_size定义了InnoDB存储引擎的表数据和索引数据的最大内存缓冲区大小。
# 和 MyISAM 存储引擎不同, MyISAM 的 key_buffer_size只能缓存索引键,而innodb_buffer_pool_size
# 却可以缓存数据块和索引键。适当的增加这个参数的大小,可以有效的减少InnoDB类型的表的磁盘I/O
# 在一个以 InnoDB 为主的专用数据库服务器上,可以考虑把该参数设置为物理内存大小的 60%-80%
#设置方法

[mysqld]
 innodb_buffer_pool_size = 1024M

# 必须避免mysql运行到缓冲池溢出的地步。myisam溢出,只会导致性能下降(索引读写变慢)
# ,而innodb的溢出问题就多了,因为几乎所有东西都依赖缓冲池。所以最好还是配置好自增长缓冲池

# (‘auto-extending buffer pool’)

Usage 8.00M of 8.00M %Used: 100.00
# 我的mysql服务器100%了

Read hit 99.91%
# 读命中率

Pages
Free 0 %Total: 0.00
Data 505 98.63 %Drty: 0.00
Misc 7 1.37
Latched 0.00
Reads 134.71M 5.6k/s
# 从内存读取的数量, 这个数值可以用来衡量innodb缓冲池的吞吐量,
# 因为几乎所有inondb需要的东西都是在缓冲池里,所以缓冲池的读性能是越快越好。
# 哪怕超过每秒200000次也不是不可能的

From file 115.75k 4.8/s 0.09
# 从磁盘读的数量, 越小越好

Ahead Rnd 7851 0.3/s
# 随机读,innodb启动的随机读取数。只有对表的大部分内容进行随机扫描的时候才会出现

Ahead Sql 12926 0.5/s
# 顺序读,只有全表扫描才会出现

Writes 84.55k 3.5/s
Flushes 10.19k 0.4/s
Wait Free 0 0/s

__ InnoDB Lock _________________________________________________________
Waits 0 0/s
Current 0
Time acquiring
Total 0 ms
Average 0 ms
Max 0 ms

__ InnoDB Data, Pages, Rows ____________________________________________
# 这部分报告,一般广泛的用于衡量innodb引擎的吞吐量指标。

Data

Reads 140.45k 5.9/s
# 指的是整个innodb引擎完成所有的数据读取次数。注意:不是整个数据读取字节数或者类型,
# 而是innodb完成的数据读取次数

Writes 25.79k 1.1/s
# 写,和读一样是个次数的统计

fsync 17.83k 0.7/s
# 刷新,同样的,innodb从内存写入磁盘的次数。这个值应该会比前两个小

Pending
Reads 0
Writes 0
fsync 0

Pages
# 这部分包括三种自描述类型:创建、读取、写入,分别用来表示缓冲池中页的创建、读取
和写入的数量和速率(即每秒操作数)。

Created 346 0.0/s
Read 387.46k 16.1/s
Written 10.19k 0.4/s

Rows
Deleted 105 0.0/s
Inserted 7.47k 0.3/s
Read 537.83M 22.4k/s
Updated 6.22k 0.3/s

参考资料

https://www.2cto.com/database/201702/592489.html
http://blog.chinaunix.net/uid-24426415-id-77301.html
https://www.xuebuyuan.com/1949900.html


This entry was posted in 数据库, 高并发与大数据 and tagged , , . Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/mysqlreport-install-read/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力.

Leave a Reply