performance_schema 是 MySQL 数据库中的一个内置的系统数据库,最早从MySQL5.5版本产生,这个数据库主要用于收集和存储与数据库性能相关的统计信息和指标。
使用它可以帮助运维人员对数据库性能监控、调优和故障排查提供依据。
收集的事件数据存储在performanceschema数据库的表中,支持select进行查询。
show tables like '%setup%
输出列表
setup_actors
setup_consumers
setup_instruments
setup_objects
setup_timers
用于配置user维度的监控,该表属于全局监控配置表,默认情况下监控所有用户线程。
SELECT * from setup_actors;
输出
HOST USER ROLE ENABLED HISTORY
% % % YES YES
字段介绍
HOST:主机IP,%表示全部
USER:数据库用户,%表示全部
ROLE:数据库角色,% 表示全部
ENABLED:是否启用实时监控记录插入
HISTORY:是否启用历史记录监控记录插入
setup_consumers主要是配置events的消费者类型,即收集的events写入到哪些统计表中。相应的记录开启后,就可以在数据库运行过程重产生相应的事件记录,然后进行数据库性能分析。
说明:修改后,实时生效,默认history表记录10个事件记录,history_long表记录10000个事件记录。
查询
SELECT * from setup_consumers;
输出
NAME ENABLED
events_stages_current NO
events_stages_history NO
events_stages_history_long NO
events_statements_current YES
events_statements_history YES
events_statements_history_long NO
events_transactions_current NO
events_transactions_history NO
events_transactions_history_long NO
events_waits_current NO
events_waits_history NO
events_waits_history_long NO
global_instrumentation YES
thread_instrumentation YES
statements_digest YES
字段介绍
NAME:配置表名称,数据来源是performance_schema数据库的监控事件表和全局配置表。
ENABLED:是否启用监控记录插入。启用时YES,禁用是NO。
setup_instruments监控配置的总开关,用来配置哪些event会被监控,主要包含4大类:idle、memory/xxx、stage/xxx、statement/xxx、transaction/xxx、wait/xxx。大部分是修改立即生效。
instruments 组件分类
查询
SELECT * from setup_instruments;
输出
NAME ENABLED TIMED
wait/synch/mutex/sql/TC_LOG_MMAP::LOCK_tc NO NO
wait/synch/mutex/sql/LOCK_des_key_file NO NO
wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_commit NO NO
wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_commit_queue NO NO
wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_done NO NO
字段介绍
setup_objects表用来配置performance_schema是否监视特定对象(EVENT 事件、FUNCTION 函数、TABLE 数据表、PROCEDURE 存储过程)。默认情况下,此表的最大行数为100行。要更改表行数大小,可以在server启动之前修改系统变量
查询
SELECT * from setup_objects;
输出
OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED
EVENT mysql % NO NO
EVENT performance_schema % NO NO
EVENT information_schema % NO NO
EVENT % % YES YES
FUNCTION mysql % NO NO
FUNCTION performance_schema % NO NO
FUNCTION information_schema % NO NO
FUNCTION % % YES YES
PROCEDURE mysql % NO NO
PROCEDURE performance_schema % NO NO
PROCEDURE information_schema % NO NO
PROCEDURE % % YES YES
TABLE mysql % NO NO
TABLE performance_schema % NO NO
TABLE information_schema % NO NO
TABLE % % YES YES
TRIGGER mysql % NO NO
TRIGGER performance_schema % NO NO
TRIGGER information_schema % NO NO
TRIGGER % % YES YES
字段介绍
setup_timers主要指定使用哪种类型的timer,分为CPU时钟、微秒、纳秒、皮秒(1秒=1万亿皮秒)
查询
SELECT * from setup_timers;
输出
NAME TIMER_NAME
idle MICROSECOND
wait CYCLE
stage MICROSECOND
statement MICROSECOND
transaction MICROSECOND
字段介绍
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。