第4章 performance_schema初相识
第5章 performance_schema配置详解
第6章 performance_schema应用示例荟萃
1、实时监控Server性能监控和诊断的工具
2、它提供了丰富的性能指标和事件,可以帮助你深入了解 MySQL 的性能状况
3、通过 performance_schema,你可以监视数据库的查询、锁定、IO 等方面的性能数据,并进行性能优化和瓶颈排查
4、只记录本地,不会同步到备库
5、数据保存在内存,重启丢失
表名 | 描述 |
---|---|
accounts | 存储MySQL帐户信息和密码哈希值的表 |
cond_instances | 存储条件对象实例的表 |
events_waits_current | 提供当前等待事件的信息 |
events_waits_history | 提供历史等待事件的信息 |
events_waits_history_long | 提供长期历史等待事件的信息 |
events_waits_summary_by_instance | 提供按实例汇总的等待事件信息 |
events_waits_summary_by_thread | 提供按线程汇总的等待事件信息 |
events_stages_current | 提供当前阶段事件的信息 |
events_stages_history | 提供历史阶段事件的信息 |
events_stages_history_long | 提供长期历史阶段事件的信息 |
events_stages_summary_by_host_by_event_name | 提供按主机和事件名称汇总的阶段事件信息 |
events_stages_summary_by_host_by_event_name | 提供按主机和事件名称汇总的阶段事件信息 |
events_statements_current | 提供当前语句事件的信息 |
events_statements_history | 提供历史语句事件的信息 |
events_statements_history_long | 提供长期历史语句事件的信息 |
events_statements_summary_by_account_by_event_name | 提供按帐户和事件名称汇总的语句事件信息 |
events_statements_summary_by_host_by_event_name | 提供按主机和事件名称汇总的语句事件信息 |
events_statements_summary_by_thread_by_event_name | 提供按线程和事件名称汇总的语句事件信息 |
events_statements_summary_by_user_by_event_name | 提供按用户和事件名称汇总的语句事件信息 |
events_transactions_current | 提供当前事务事件的信息 |
events_transactions_history | 提供历史事务事件的信息 |
events_transactions_history_long | 提供长期历史事务事件的信息 |
events_transactions_summary_by_host_by_event_name | 提供按主机和事件名称汇总的事务事件信息 |
events_transactions_summary_by_thread_by_event_name | 提供按线程和事件名称汇总的事务事件信息 |
events_transactions_summary_by_user_by_event_name | 提供按用户和事件名称汇总的事务事件信息 |
events_waits_summary_global_by_event_name | 提供按事件名称全局汇总的等待事件信息 |
file_instances | 存储文件实例的表 |
file_summary_by_event_name | 提供按事件名称汇总的文件摘要信息 |
file_summary_by_instance | 提供按实例汇总的文件摘要信息 |
hosts | 存储已连接到MySQL服务器的主机信息 |
mutex_instances | 存储互斥锁实例的表 |
performance_timers | 存储性能计时器的信息 |
rwlock_instances | 存储读写锁实例的表 |
session_connect_attrs | 存 |
储会话连接属性的表 |
| setup_consumers | 存储事件消费者信息的表 |
| setup_instruments | 存储事件仪表信息的表 |
| setup_timers | 存储计时器信息的表 |
| threads | 存储线程信息的表 |
| users | 存储MySQL用户信息的表 |
以上是MySQL 8中performance_schema表的一些常见表和它们的作用。performance_schema表提供了关于MySQL服务器性能、资源利用和各种事件的详细信息。通过查询这些表,您可以获得关于MySQL服务器运行状态的有用统计信息,以便进行性能分析和调优。
1、介绍编译时的配置选项,只对源码编译安装适用
2、详细介绍启动时配置,即在启动之前如何通过配置文件来持久化performance_schema的配置,主要介绍performance_schema的system variables(系统变量)、status variables(状态变量)和启动选项
show variables like '%performance_schema%';
3、详细介绍运行时配置,即在运行过程中如何动态配置performance_schema,主要介绍如何通过performance_schema中的配置表进行动态配置,以及这些配置表的字段含义、配置表中的配置项之间有什么关联等。
events_waits_current
使用 events_waits_current
视图可以查看当前正在等待的事件。这个视图提供了关于当前等待事件的详细信息,包括等待事件的类型、持续时间、等待线程的状态等。
以下是使用 events_waits_current
视图的一般步骤:
确保 performance_schema
已经启用:
performance_schema
是否被设置为 ON
。如果没有设置,需要修改配置文件并重启 MySQL。查询 events_waits_current
视图:
events_waits_current
视图,可以获取当前正在等待的事件信息。SELECT * FROM performance_schema.events_waits_current;
分析等待事件:
结合其他视图和表进行进一步分析:
events_statements_summary_by_digest
、events_statements_current
等,来获取更全面的性能数据和查询执行信息。请注意,events_waits_current
视图只提供了当前正在等待的事件信息,如果需要查看历史等待事件,可以使用 events_waits_history
视图。
使用 events_waits_current
视图可以实时监控当前等待事件,对于实时性能问题的排查和分析很有帮助。结合其他性能监控工具和技术,可以更全面地了解 MySQL 的性能状况,并进行相应的优化和调整。
events_waits_summary_global_by_event_name
和 events_waits_history_long
使用 performance_schema 可以利用等待事件来排查 MySQL 的性能问题。等待事件是指在执行过程中,MySQL 进程因等待某种资源而暂时挂起的情况。通过分析等待事件,可以找出导致性能瓶颈的原因,并进行相应的优化。
下面是使用 performance_schema 排查 MySQL 性能问题的一般步骤:
确保 performance_schema 已经启用:
performance_schema
是否被设置为 ON
。如果没有设置,需要修改配置文件并重启 MySQL。查询等待事件:
events_waits_summary_global_by_event_name
和 events_waits_history_long
。SELECT * FROM performance_schema.events_waits_summary_global_by_event_name;
分析等待事件:
进一步细化分析:
events_statements_summary_by_digest
表提供了查询摘要的性能数据,可以根据查询的执行时间、扫描行数等指标进行优化。监控和持续优化:
使用 performance_schema 来排查性能问题需要对 MySQL 的内部工作原理和各个等待事件有一定的了解。可以参考 MySQL 官方文档中关于 performance_schema 的详细说明,以及一些性能优化的经验和案例来指导实际操作。
1、全局读锁
2、MDL锁
3、表级锁
4、行级锁
从MySQL 5.7版本开始提供了performance_schema.metadata_locks表,该表记录了各种Server层的锁信息(包括全局读锁和MDL锁等信息)
information_schema下的三个关于InnoDB引擎的锁和事务信息表(INNODB_LOCK_WAITS、INNODB_LOCKS、INNODB_TRX)
performance_schema.table_handles表
performance_schema.events_statements_current表
sys.innodb_lock_waits视图