首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MYSQL-系统库表(performance_schema)

MYSQL-系统库表(performance_schema)

作者头像
运维小路
发布2026-01-26 11:54:59
发布2026-01-26 11:54:59
1000
举报
文章被收录于专栏:运维小路运维小路

作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

数据库是一个系统(应用)最重要的资产之一,所以我们的数据库将从以下几个数据库来进行介绍。

MySQL(本章节)

PostgreSQL

MongoDB

Redis

Etcd

上个小节介绍了MYSQL的系统库表(information_schema),本小节来介绍另外一个库表:performance_schema,他是MySQL内置的性能监控引擎,以事件方式采集数据库内部执行的详细运行时数据,用于深度性能分析和故障诊断。

代码语言:javascript
复制
mysql> show tables;
+------------------------------------------------------+
| Tables_in_performance_schema                         |
+------------------------------------------------------+
| accounts                                             |
| cond_instances                                       |
| events_stages_current                                |
| events_stages_history                                |
| events_stages_history_long                           |
| events_stages_summary_by_account_by_event_name       |
| events_stages_summary_by_host_by_event_name          |
| events_stages_summary_by_thread_by_event_name        |
| events_stages_summary_by_user_by_event_name          |
| events_stages_summary_global_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_digest                  |
| events_statements_summary_by_host_by_event_name      |
| events_statements_summary_by_program                 |
| events_statements_summary_by_thread_by_event_name    |
| events_statements_summary_by_user_by_event_name      |
| events_statements_summary_global_by_event_name       |
| events_transactions_current                          |
| events_transactions_history                          |
| events_transactions_history_long                     |
| events_transactions_summary_by_account_by_event_name |
| 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_transactions_summary_global_by_event_name     |
| 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            |
| file_instances                                       |
| file_summary_by_event_name                           |
| file_summary_by_instance                             |
| global_status                                        |
| global_variables                                     |
| host_cache                                           |
| hosts                                                |
| memory_summary_by_account_by_event_name              |
| memory_summary_by_host_by_event_name                 |
| memory_summary_by_thread_by_event_name               |
| memory_summary_by_user_by_event_name                 |
| memory_summary_global_by_event_name                  |
| metadata_locks                                       |
| mutex_instances                                      |
| objects_summary_global_by_type                       |
| performance_timers                                   |
| prepared_statements_instances                        |
| processlist                                          |
| replication_applier_configuration                    |
| replication_applier_status                           |
| replication_applier_status_by_coordinator            |
| replication_applier_status_by_worker                 |
| replication_connection_configuration                 |
| replication_connection_status                        |
| replication_group_member_stats                       |
| replication_group_members                            |
| rwlock_instances                                     |
| session_account_connect_attrs                        |
| session_connect_attrs                                |
| session_status                                       |
| session_variables                                    |
| setup_actors                                         |
| setup_consumers                                      |
| setup_instruments                                    |
| setup_objects                                        |
| setup_timers                                         |
| socket_instances                                     |
| socket_summary_by_event_name                         |
| socket_summary_by_instance                           |
| status_by_account                                    |
| status_by_host                                       |
| status_by_thread                                     |
| status_by_user                                       |
| table_handles                                        |
| table_io_waits_summary_by_index_usage                |
| table_io_waits_summary_by_table                      |
| table_lock_waits_summary_by_table                    |
| threads                                              |
| user_variables_by_thread                             |
| users                                                |
| variables_by_thread                                  |
+------------------------------------------------------+
88 rows in set (0.00 sec)

1. 事件采集配置表(核心控制)

setup_instruments - 监控仪器配置,控制采集哪些事件 setup_consumers - 消费者配置,控制事件数据存储到哪里 setup_timers - 计时器配置,不同事件类型的计时单位 setup_actors - 用户连接匹配规则,控制哪些用户被监控 setup_objects - 对象过滤规则,控制哪些数据库对象被监控

2. 语句事件表(SQL执行监控)

events_statements_current - 当前正在执行的SQL语句 events_statements_history - 每个线程最近执行的历史SQL(循环缓冲) events_statements_history_long - 全局最近执行的所有SQL(循环缓冲) events_statements_summary_by_digest - SQL语句摘要统计(按指纹分组) events_statements_summary_global_by_event_name - 按事件类型聚合的语句统计 events_statements_summary_by_account_by_event_name - 按账号聚合的语句统计 events_statements_summary_by_user_by_event_name - 按用户聚合的语句统计 events_statements_summary_by_host_by_event_name - 按主机聚合的语句统计 events_statements_summary_by_thread_by_event_name - 按线程聚合的语句统计

注:可以通过这里分析出目前库表的sql执行情况。

3. 阶段事件表(SQL执行阶段)

events_stages_current - 当前执行阶段 events_stages_history - 历史阶段信息 events_stages_history_long - 长期阶段信息 events_stages_summary_global_by_event_name - 阶段全局统计 events_stages_summary_by_account_by_event_name - 按账号的阶段统计 events_stages_summary_by_user_by_event_name - 按用户的阶段统计 events_stages_summary_by_host_by_event_name - 按主机的阶段统计 events_stages_summary_by_thread_by_event_name - 按线程的阶段统计

4. 等待事件表(资源等待)

events_waits_current - 当前等待事件 events_waits_history - 历史等待事件 events_waits_history_long - 长期等待事件 events_waits_summary_global_by_event_name - 等待事件全局统计 events_waits_summary_by_instance - 按实例的等待统计 events_waits_summary_by_account_by_event_name - 按账号的等待统计 events_waits_summary_by_user_by_event_name - 按用户的等待统计 events_waits_summary_by_host_by_event_name - 按主机的等待统计 events_waits_summary_by_thread_by_event_name - 按线程的等待统计

5. 事务事件表

events_transactions_current - 当前事务 events_transactions_history - 历史事务 events_transactions_history_long - 长期事务历史 events_transactions_summary_global_by_event_name - 事务全局统计 events_transactions_summary_by_account_by_event_name - 按账号的事务统计 events_transactions_summary_by_user_by_event_name - 按用户的事务统计 events_transactions_summary_by_host_by_event_name - 按主机的事务统计 events_transactions_summary_by_thread_by_event_name - 按线程的事务统计

6. 文件I/O监控表

file_instances - 打开的文件实例 file_summary_by_event_name - 按事件类型的文件I/O统计 file_summary_by_instance - 按文件实例的I/O统计

7. 内存使用监控表

memory_summary_global_by_event_name - 内存使用全局统计 memory_summary_by_account_by_event_name - 按账号的内存统计 memory_summary_by_user_by_event_name - 按用户的内存统计 memory_summary_by_host_by_event_name - 按主机的内存统计 memory_summary_by_thread_by_event_name - 按线程的内存统计

8. 锁监控表

metadata_locks - 元数据锁信息 table_handles - 表锁句柄信息 table_io_waits_summary_by_table - 表I/O等待统计 table_io_waits_summary_by_index_usage - 索引使用和等待统计 table_lock_waits_summary_by_table - 表锁等待统计

9. 连接和线程表

threads - 线程信息(增强版processlist),其实我个人用的最多的是

代码语言:javascript
复制
mysql> show processlist;
+----+------+-----------+--------------------+---------+------+----------+------------------+
| Id | User | Host      | db                 | Command | Time | State    | Info             |
+----+------+-----------+--------------------+---------+------+----------+------------------+
|  2 | root | localhost | performance_schema | Query   |    0 | starting | show processlist |
+----+------+-----------+--------------------+---------+------+----------+------------------+
1 row in set (0.00 sec)

accounts - 账号连接统计 users - 用户连接统计 hosts - 主机连接统计 session_connect_attrs - 会话连接属性 session_account_connect_attrs - 当前账号连接属性

10. 同步对象表

cond_instances - 条件变量实例 mutex_instances - 互斥锁实例 rwlock_instances - 读写锁实例 socket_instances - Socket实例 socket_summary_by_instance - Socket实例统计 socket_summary_by_event_name - Socket事件统计

11. 复制监控表

replication_connection_configuration - 复制连接配置 replication_connection_status - 复制连接状态 replication_applier_configuration - 复制应用配置 replication_applier_status - 复制应用状态 replication_applier_status_by_coordinator - 协调器状态 replication_applier_status_by_worker - 工作线程状态 replication_group_members - 组复制成员 replication_group_member_stats - 组复制成员统计

12. 系统变量和状态表

global_variables - 全局变量(云数据库都会提供一个可修改的配置文件,都来自于它),上个库其实也有这个表。 session_variables - 会话变量 global_status - 全局状态 session_status - 会话状态 variables_by_thread - 线程变量 status_by_account - 账号状态 status_by_user - 用户状态 status_by_host - 主机状态 status_by_thread - 线程状态

13. 其他功能表

host_cache - 主机缓存信息 prepared_statements_instances - 预处理语句实例 performance_timers - 性能计时器 objects_summary_global_by_type - 对象类型统计 user_variables_by_thread - 用户变量 processlist - 增强的进程列表

主要特点:

  • 性能开销:默认部分开启,完全开启有性能影响
  • 实时数据:提供实时的内部运行状态
  • 细粒度:监控到语句、阶段、等待等不同层次
  • 可配置:通过setup表控制监控范围和精度
  • 内存存储:数据存储在内存中,重启丢失

这种分类清晰地展示了 performance_schema 作为MySQL性能诊断工具的核心架构,从事件采集到聚合统计的完整监控体系。

查看和设置某个变量也是最常用的配置。

代码语言:javascript
复制
#查看所有变量
SHOW VARIABLES;  

#搜索命令,太多根本记不住
SHOW VARIABLES LIKE '%xxx%';

#修改变量
SET GLOBAL 变量名 = 值;
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MongoDB
    • 1. 事件采集配置表(核心控制)
    • 2. 语句事件表(SQL执行监控)
    • 3. 阶段事件表(SQL执行阶段)
    • 4. 等待事件表(资源等待)
    • 5. 事务事件表
    • 6. 文件I/O监控表
    • 7. 内存使用监控表
    • 8. 锁监控表
    • 9. 连接和线程表
    • 10. 同步对象表
    • 11. 复制监控表
    • 12. 系统变量和状态表
    • 13. 其他功能表
  • 主要特点:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档