当前位置 主页 > 技术大全 >

    mysql 性能监控,常用的性能监控方式

    栏目:技术大全 时间:2025-09-23 15:43


    在 MySQL 中,进行性能监控可以通过多种工具和方法实现,以下是常用的性能监控方式:

    1. 内置状态变量查询

    通过 SHOW STATUS 命令可以查看 MySQL 服务器的各类运行状态指标:
    sql
    -- 查看所有状态变量
    SHOW GLOBAL STATUS;
    
    -- 查看与连接相关的状态
    SHOW GLOBAL STATUS LIKE 'Threads%';
    SHOW GLOBAL STATUS LIKE 'Connections';
    
    -- 查看查询缓存状态(MySQL 8.0 已移除查询缓存)
    SHOW GLOBAL STATUS LIKE 'Qcache%';
    
    -- 查看 I/O 相关状态
    SHOW GLOBAL STATUS LIKE 'Innodb_data_read%';
    SHOW GLOBAL STATUS LIKE 'Innodb_data_written%';
    
     

    2. 慢查询日志

    慢查询日志用于记录执行时间超过指定阈值的 SQL 语句,是优化查询性能的重要工具:
    sql
    -- 查看慢查询配置
    SHOW VARIABLES LIKE 'slow_query_log%';
    SHOW VARIABLES LIKE 'long_query_time';
    
    -- 临时开启慢查询日志(重启后失效)
    SET GLOBAL slow_query_log = ON;
    SET GLOBAL long_query_time = 2; -- 阈值设为 2 秒
    SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log';
    
     

    3. 进程列表监控

    通过 SHOW PROCESSLIST 查看当前正在执行的线程,可及时发现阻塞或耗时操作:
    sql
    -- 查看所有活跃进程
    SHOW FULL PROCESSLIST;
    
    -- 筛选出处于锁定状态的进程
    SELECT * FROM information_schema.processlist WHERE state LIKE 'Locked';
    
     

    4. EXPLAIN 分析查询执行计划

    分析 SQL 语句的执行计划,判断是否使用索引、表连接方式等:
    sql
    EXPLAIN SELECT * FROM users WHERE age > 30;
    EXPLAIN ANALYZE SELECT * FROM orders JOIN users ON orders.user_id = users.id;
    
     

    5. 第三方监控工具

    • Percona Monitoring and Management (PMM):开源监控平台,提供 MySQL 性能指标可视化
    • MySQL Workbench:官方工具,内置性能监控仪表盘
    • Prometheus + Grafana:通过 mysqld_exporter 收集指标,实现自定义监控面板
    • pt-query-digest(Percona Toolkit):分析慢查询日志,生成详细报告

    6. 关键性能指标

    监控时应重点关注以下指标:
    • 连接数:Threads_connectedMax_used_connections
    • 查询性能:QueriesQuestionsSlow_queries
    • 缓存命中率:Key_read_hit_rate = (1 - Key_reads / Key_read_requests) * 100%
    • InnoDB 状态:SHOW ENGINE INNODB STATUS(查看锁等待、缓冲池使用等)
    通过结合以上方法,可以全面掌握 MySQL 服务器的运行状态,及时发现并解决性能瓶颈。
1分钟搞定MySQL部署!Docker最强实操指南,含所有常用命令和配置
忘记MySQL密码怎么办?别慌!用这一招跳过验证,轻松重置管理员权限
MySQL自增主键用完怎么办?从原理到实战,全面破解开发中的高频难题
MySQL权限混乱?这几个命令让你彻底理清用户清单与权限归属
你的数据库安全吗?读懂MySQL这几种日志,关键时刻能「救你一命」
MySQL性能上不去?八成是这里没配好!手把手教你搞定my.cnf核心配置
修改MySQL字段长度别乱来!这3个核心要点和1个致命陷阱,新手必看
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
你的MySQL数据库为什么总是又慢又卡?掌握这五大优化法则,查询速度快十倍!(上篇)
你的MySQL数据库为什么总是又慢又卡?掌握这五大优化法则,查询速度快十倍!(下篇)