mysql中的性能模式是什么_mysql performance_schema概念

来源:这里教程网 时间:2026-02-28 20:33:05 作者:

MySQL 中的性能模式(Performance Schema)是一个内置的、运行在数据库内核层的实时监控系统,它不是日志,也不是插件,而是一套由内存表构成的“性能数据接口”。它的核心作用是让管理员和开发者能直接观察 MySQL 服务器内部正在发生的操作——比如某条 SQL 正在等锁、某个线程卡在磁盘 I/O、索引为何没被用上。

它本质上是一个只读的系统数据库

performance_schema 是 MySQL 启动时自动创建的数据库,和

information_schema
mysql
并列。但它里面的表(如
events_statements_history
events_waits_current
)不是磁盘文件,而是内存中动态生成的虚拟表:

你不能对它们执行 INSERT/UPDATE/DELETE 没有 .ibd 或 .frm 数据文件(只有空的 .frm 结构文件) 重启后所有数据清空,启动时重新采集 查询时,MySQL 实时从内存 instrumentation 点拉取当前状态返回

它专注的是“性能事件”,不是元数据或业务数据

information_schema
(查表结构、列名、权限)不同,performance_schema 关注的是“发生了什么、耗时多少、谁在等、等什么”:

SQL 执行阶段:parsing、sorting、sending data 等待事件:mutex 锁、file I/O、table lock、socket read 线程行为:活跃线程数、每个线程最近执行的 10 条语句 资源使用:内存分配、临时表创建、全表扫描次数

它默认开启但常被云环境关闭

MySQL 5.6+ 默认启用 performance_schema,但在多数云数据库(如阿里云 RDS、腾讯云 CDB)中为节省资源,默认设为 OFF:

确认是否开启:
SHOW VARIABLES LIKE 'performance_schema';
→ 返回
ON
才可用
开启方式:必须在
my.cnf
[mysqld]
段添加
performance_schema=ON
,然后重启 mysqld
注意:这是只读启动参数,无法在线动态开启

它靠配置表控制采集粒度和开销

performance_schema 本身轻量,但具体采集哪些内容,由两张关键配置表决定:

setup_instruments
:开关各类事件采集(如
statement/sql/select
wait/io/file/innodb/innodb_data_file
setup_consumers
:决定采集结果是否写入历史表(如关掉
events_statements_history
可大幅降低内存占用)
修改后立即生效,无需重启

相关推荐