成都木风未来科技有限公司

电话
199 8202 6376
周一至周六 08:00 - 22:00

MySQL日常运维

MySQL日常运维

对于MySQL日常运维而言,performance_schema堪称性能监控的“核心利器”,它如同MySQL服务器的“实时监控仪表盘”,内置丰富的系统表,可精准追踪服务器的各类事件、资源占用及语句执行等关键信息。

本文将系统梳理performance_schema中最常用的基础配置相关表,助力快速上手,掌握MySQL性能监控的配置要领。

一、什么是performance_schema基础配置表?

基础配置表主要用于定义监控规则、控制监控范围,其本质是告知MySQL:监控对象、监控事件类型及监控方式。

此类表的命名具有明显规律:均以`setup_`开头。可通过以下SQL快速查询所有基础配置表:

```sql

SHOWTABLESFROMperformance_schemaLIKE'setup%';

```

执行结果示例:

```

++

|Tables_in_performance_schema(setup%)|

++

|setup_actors|

|setup_consumers|

|setup_instruments|

|setup_objects|

|setup_timers|

++

5rowsinset(0.00sec)

```

二、基础配置表详解

1.setup_actors

核心作用:设定哪些“用户–主机”组合的数据库操作需要被performance_schema监控。默认监控所有用户与主机。

表结构:

```sql

DESCperformance_schema.setup_actors;

```

关键字段说明:

`HOST`:主机名,`%`表示所有主机;

`USER`:用户名,`%`表示所有MySQL用户;

`ROLE`:用户角色;

`ENABLED`:是否启用监控;

`HISTORY`:是否记录历史。

查询示例:

```sql

SELECTFROMperformance_schema.setup_actors;

```

结果一般为一条`%/%/%`记录,表示监控所有用户、主机与角色。

2.setup_consumers

核心作用:决定performance_schema接收哪些类型的监控数据,相当于数据接收器的开关。若某消费者被禁用,即使对应监控点开启,也不会收集数据。

表结构:

```sql

DESCperformance_schema.setup_consumers;

```

关键字段:

`NAME`:消费者名称,对应具体监控数据类型;

`ENABLED`:是否启用。

重要消费者(建议启用):

`events_statements_%`:SQL语句监控;

`events_transactions_%`:事务监控;

`events_waits_%`:等待事件监控;

`global_instrumentation`:全局监控开关;

`thread_instrumentation`:线程级监控开关。

查询示例:

```sql

SELECTNAME,ENABLED

FROMperformance_schema.setup_consumers

WHERENAMELIKE'events%';

```

3.setup_instruments

核心作用:定义MySQL服务器上哪些具体操作需要被监控,相当于“监控探针”。每个仪器对应一个具体操作,如文件I/O、SQL执行、内存分配等。

表结构:

```sql

DESCperformance_schema.setup_instruments;

```

关键字段:

`NAME`:监控点名称,可通过前缀区分类型;

`ENABLED`:是否启用;

`TIMED`:是否收集时间信息。

主要监控类别:

`wait/%`:等待事件(锁、I/O等);

`statement/%`:SQL语句;

`transaction%`:事务操作;

`memory/%`:内存使用;

`error/%`:错误事件。

查询示例:

```sql

SELECTNAME,ENABLED,TIMED

FROMperformance_schema.setup_instruments

WHERENAMELIKE'statement/%'LIMIT10;

```

4.setup_objects

核心作用:精确控制哪些数据库对象被监控,例如仅监控某张业务表或某个存储过程,避免资源浪费。

表结构:

```sql

DESCperformance_schema.setup_objects;

``

关键字段:

`OBJECT_TYPE`:对象类型(TABLE、FUNCTION、PROCEDURE等);

`OBJECT_SCHEMA`:数据库名;

`OBJECT_NAME`:对象名;

`ENABLED`:是否启用监控;

`TIMED`:是否计时。

查询示例:

```sql

SELECTFROMperformance_schema.setup_objects

WHEREOBJECT_SCHEMA='mysql';

```

5.setup_timers

核心作用:指定performance_schema收集数据时使用的时间单位(如纳秒、微秒),统一时间统计标准。

表结构:

```sql

DESCperformance_schema.setup_timers;

```

关键字段:

`NAME`:计时器名称;

`TIMER_NAME`:时间单位类型。

查询示例:

```sql

SELECTFROMperformance_schema.setup_timers;

```

三、日常关键配置操作

掌握基础表结构后,以下为四个高频场景的配置示例:

1.启用SQL语句监控

```sql

UPDATEperformance_schema.setup_consumers

SETENABLED='YES'

WHERENAMELIKE'events_statements%';

UPDATEperformance_schema.setup_instruments

SETENABLED='YES',TIMED='YES'

WHERENAMELIKE'statement/%';

```

2.启用事务监控

```sql

UPDATEperformance_schema.setup_consumers

SETENABLED='YES'

WHERENAMELIKE'events_transactions%';

UPDATEperformance_schema.setup_instruments

SETENABLED='YES',TIMED='YES'

WHERENAMELIKE'transaction%';

```

3.启用等待事件监控

```sql

UPDATEperformance_schema.setup_consumers

SETENABLED='YES'

WHERENAMELIKE'events_waits%';

UPDATEperformance_schema.setup_instruments

SETENABLED='YES',TIMED='YES'

WHERENAMELIKE'wait/%';

```

4.监控特定表

```sql

INSERTINTOperformance_schema.setup_objects

VALUES('TABLE','your_db','your_table','YES','YES');

```

⚠️重置配置(谨慎操作):

```sql

TRUNCATETABLEperformance_schema.setup_consumers;

TRUNCATETABLEperformance_schema.setup_instruments;

TRUNCATETABLEperformance_schema.setup_actors;

TRUNCATETABLEperformance_schema.setup_objects;

```

四、常用状态查询示例

1.查看启用监控项数量

```sql

SELECT

(SELECTCOUNT()FROMperformance_schema.setup_consumersWHEREENABLED='YES')ASenabled_consumers,

(SELECTCOUNT()FROMperformance_schema.setup_instrumentsWHEREENABLED='YES')ASenabled_instruments;

```

2.按类别分组查看启用监控点

```sql

SELECT

NAME,

ENABLED,

TIMED,

CASE

WHENNAMELIKE'wait/%'THEN'等待事件'

WHENNAMELIKE'statement/%'THEN'SQL语句'

WHENNAMELIKE'transaction%'THEN'事务'

ELSE'其他'

ENDAScategory

FROMperformance_schema.setup_instruments

WHEREENABLED='YES'

ORDERBYcategory,NAME;

```

3.检查语句类消费者配置

```sql

SELECTFROMperformance_schema.setup_consumers

WHERENAMEIN('events_statements_current','events_statements_history','events_statements_history_long');

```

小结

performance_schema的五张基础配置表(`setup_`系列)构成了监控体系的基石:

`setup_actors`:定义监控对象范围

`setup_instruments`:控制监控点启停

`setup_consumers`:管理数据接收链路

`setup_objects`:实现对象级精准监控

`setup_timers`:统一时间计量标准

熟练掌握这五张表的配置与查询,即可灵活构建MySQL性能监控体系,为后续SQL优化、锁分析、事务追踪及资源监控奠定坚实基础。

软件开发 就找木风!

一家致力于优质服务的软件公司

8年互联网行业经验1000+合作客户2000+上线项目60+服务地区

关注微信公众号

在线客服

在线客服

微信咨询

微信咨询

电话咨询

电话咨询