mysql性能监控

一.使用show profile查询剖析工具,查看mysql语句执行时间:

在这里插入图片描述
官网:https://dev.mysql.com/doc/refman/8.0/en/show-profile.html

mysql -uroot -p //进入数据库服务器
use  数据库名 //进入数据库
set profiling=1; //开启profiling参数
select * from user; //mysql查询语句
show profiles; //查看mysql语句执行时间(在set profiling=1后的所有mysql语句的执行时间)
show profile; // 查看最近一次mysql语句开始执行时间,查询时间等
show profile cpu; //显示用户cpu时间,系统cpu时间
show profile for query 2; //查看第二次mysql语句开始执行时间,查询时间等

在这里插入图片描述在这里插入图片描述

二,MySQL performance_schema监控mysql

官网:https://dev.mysql.com/doc/refman/8.0/en/performance-schema.html

show databases; //查看数据库
use performance_schema; //使用performance_schema数据库
show tables; //查看当前数据库中的所有表
show variables like 'performance_schema'; //查看当前变量是否开启(是否开启,如果没有改,默认是开启,要修改就在my.cnf配置文件上修改)

show tables like '%statement%'; //语句事件记录表,这些表记录了语句事件信息,当前语句事件表events_statements_current,历史语句事件表events_statements_history和长语句历史事件表events_statements_history_long,以及聚合后的摘要表summary,其中,summary表还可以根据账号(account),主机(host),程序(program),线程(thread),用户(user)和全局(global)再进行细分)

show tables like '%wait%' //等待事件记录表,与语句事件类型的相关记录表类似

show tables like '%stage%' //阶段事件记录表,记录语句执行的阶段事件的表

show tables like '%transaction%' //事务事件记录表,记录事务相关的事情的表

show tables like '%file%' //监控文件系统层调用的表

show tables like '%memory%' //监控内存使用的表

show tables like '%setup%' //动态对performance_schema进行配置的配置表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
performance_schema的简单配置与使用:
在这里插入图片描述
查看是否开启:
在这里插入图片描述
打开等待事件的采集器配置项开关,需要修改setup_instruments配置表中对应的采集器配置项

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

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

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

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

select * from events_waits_current\G

在这里插入图片描述
在这里插入图片描述
_history表中记录每个线程应该执行完成的事件信息,但每个线程的事件信息只会记录10条,再多就会被覆盖,_history_long表中记录所有线程的事件信息,但总记录数量是10000,超过就会被覆盖

select thread_id,event_id,event_name,time_wait from events_waits_history order by thread_id limit 21

在这里插入图片描述
summarry表提供所有事件的汇总信息,该组中的表以不同的方式汇总事件数据(如:按用户,按主机,按线程等等)如:要查看那些instruments占用最多的事件,可以提供对events_waits_summary_global_by_event_name表的COUNT_STAR或SUM_TIMER_WAIT列进行查询(这两列是对事件的记录数执行COUNT(*),事件记录的TIMER_WAIT列执行SUM(TIMER_WAIT)统计而来)

select event_name,count_star from events_waits_summary_global_by_event_name order by count_star desc limit 10

instance表记录了哪些类型的对象会被检测,这些对象在被server使用时,在该表中将会产生一条事件记录,如file_instances列出了文件I/O操作及其关联文件名

select * from file_instances limit 20

在这里插入图片描述
在这里插入图片描述

三,show processlist 查看连接的线程个数

在这里插入图片描述

show processlist  //查看当前数据库所有连接

官网:https://dev.mysql.com/doc/refman/8.0/en/show-processlist.html
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值