performanceschema 简介
performance_schema 是 MySQL 数据库中的一个内置的系统数据库,最早从MySQL5.5版本产生,这个数据库主要用于收集和存储与数据库性能相关的统计信息和指标。
使用它可以帮助运维人员对数据库性能监控、调优和故障排查提供依据。
performanceschema 特点
-
performanceschema数据库是mysql5.5及后续的版本才会有,并且在MySQL5.7当中默认启用,可以在MySQL配置参数里面关闭,可以节约一部分性能的消耗。
-
performanceschema数据库中的表使用performanceschema存储引擎管理,主要是监控数据库运行过程中的性能数据的收集。
-
performanceschema通过监视server的事件(函数调用、操作系统等待、SQL语句执行阶段等)来实现监视server内部运行情况。
-
performanceschema中的事件与写入二进制日志中的事件、事件计划调度程序,事件记录的是server执行某些活动对某些资源的消耗、耗时、这些活动执行的次数等情况。
-
performanceschema中的事件只记录在本地server的performanceschema中,表中数据发生变化时不会被写入binlog中,也不会通过复制机制被复制到其他server中。
-
performanceschema存储引擎使用server源代码中的“检测点”来实现事件数据的收集。
收集的事件数据存储在performanceschema数据库的表中,支持select进行查询。
- performanceschema表数据非持久化存储,而是保存在内存当中,MySQL服务重启,该数据库所有的表数据库也会被清空。
等待事件记录表介绍
等待事件的数据表列表
show tables like '%wait%';
查询数据表如下:
events_waits_current
events_waits_history
events_waits_history_long
events_waits_summary_by_account_by_event_name
events_waits_summary_by_host_by_event_name
events_waits_summary_by_instance
events_waits_summary_by_thread_by_event_name
events_waits_summary_by_user_by_event_name
events_waits_summary_global_by_event_name
table_io_waits_summary_by_index_usage
table_io_waits_summary_by_table
table_lock_waits_summary_by_table
开启等待事件数据的插入功能
默认等待事件的功能是未启用状态,大家可以按照下面的方法启动。
首先确保 MySQL 实例已启用 Performance Schema。在 MySQL 配置文件(如 my.cnf 或 my.ini)中,确保以下行未被注释(如果被注释,请取消注释并重启 MySQL)
performance_schema=ON
首先开启events_waits_current启用状态
#先开启events_waits_current的状态
SELECT *