MySQL数据库运维常用查询

【MySQL实用查询合集】整理高频运维SQL,帮你快速定位数据库问题!涵盖表空间占用查询、主从同步状态检测、慢查询统计、连接分析等7大场景。收藏这篇,让数据库调优更高效

1. 查询磁盘空间占用情况

  • 查询表占用空间

    sql 复制代码
    SELECT 
        table_schema AS '数据库',
        table_name AS '表名',
        table_rows AS '记录数',
        ROUND(data_length / 1024 / 1024, 2) AS '数据大小(MB)',
        ROUND(index_length / 1024 / 1024, 2) AS '索引大小(MB)',
        ROUND((data_length + index_length) / 1024 / 1024, 2) AS '总大小(MB)'
    FROM 
        information_schema.tables
    WHERE 
        table_schema = '数据库名称'
    ORDER BY 
        (data_length + index_length) DESC;

    查看指定数据库中各表的空间占用。

  • 查询数据库总占用空间

    sql 复制代码
    SELECT 
        table_schema AS '数据库',
        ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS '总大小(MB)'
    FROM 
        information_schema.tables
    GROUP BY 
        table_schema
    ORDER BY 
        SUM(data_length + index_length) DESC;

    汇总每个数据库的总空间占用。

  • 查询分区表的分区大小

    sql 复制代码
    SELECT 
        table_schema AS '数据库',
        table_name AS '表名',
        partition_name AS '分区名',
        table_rows AS '记录数',
        ROUND(data_length / 1024 / 1024, 2) AS '数据大小(MB)',
        ROUND(index_length / 1024 / 1024, 2) AS '索引大小(MB)',
        ROUND((data_length + index_length) / 1024 / 1024, 2) AS '总大小(MB)'
    FROM 
        information_schema.partitions
    WHERE 
        table_schema = '数据库名称' 
        AND table_name = '表名';

    查看分区表的每个分区大小。

2. 查询主从同步状态

  • 检查从库同步状态(在从库执行):

    sql 复制代码
    SHOW SLAVE STATUS\G

    显示从库的复制状态,关注以下关键字段:

    • Slave_IO_Running: 是否正在读取主库的 binlog(应为 Yes)。

    • Slave_SQL_Running: 是否正在应用 binlog(应为 Yes)。

    • Seconds_Behind_Master: 从库落后主库的秒数(0 表示无延迟)。

    • Last_IO_Error / Last_SQL_Error: 复制错误信息。

  • 检查主库状态(在主库执行):

    sql 复制代码
    SHOW MASTER STATUS;

    显示主库的 binlog 文件名和位置,用于配置从库或排查问题。

3. 查询性能和运行状态

  • 查询慢查询

    sql 复制代码
    SHOW GLOBAL STATUS LIKE 'Slow_queries';

    查看慢查询次数(需启用慢查询日志)。

4. 查询连接和会话

  • 查看当前连接

    sql 复制代码
    SHOW PROCESSLIST;

    显示当前所有连接的详细信息,包括用户、状态、执行的 SQL 等。

  • 统计连接数

    sql 复制代码
    SELECT 
        user, 
        COUNT(*) AS connection_count 
    FROM 
        information_schema.processlist 
    GROUP BY 
        user;

    按用户统计当前连接数。

  • 查看最大连接数和使用情况

    sql 复制代码
    SHOW VARIABLES LIKE 'max_connections';
    SHOW GLOBAL STATUS LIKE 'Threads_connected';

    检查最大连接数和当前连接数。

5. 查询索引和表结构

  • 查看表索引

    sql 复制代码
    SHOW INDEX FROM table_name;

    显示指定表的索引信息。

  • 查看表结构

    sql 复制代码
    DESCRIBE table_name;

    或:

    sql 复制代码
    SHOW CREATE TABLE table_name\G

    查看表的字段、类型、约束等详细信息。

6. 查询日志和配置

  • 查看慢查询日志配置

    sql 复制代码
    SHOW VARIABLES LIKE 'slow_query_log%';
    SHOW VARIABLES LIKE 'long_query_time';

    检查慢查询日志是否启用及阈值。

  • 查看二进制日志状态

    sql 复制代码
    SHOW BINARY LOGS;

    列出当前二进制日志文件及其大小。

  • 查看通用查询日志

    sql 复制代码
    SHOW VARIABLES LIKE 'general_log%';

    检查通用查询日志是否启用。

7. 其他运维相关查询

  • 查看用户权限

    sql 复制代码
    SELECT 
        user, 
        host, 
        authentication_string 
    FROM 
        mysql.user;

    查看数据库用户及其认证信息。

  • 查看表状态

    sql 复制代码
    SHOW TABLE STATUS FROM 数据库名称;

    显示表的详细信息,如存储引擎、行数、创建时间等。

本文由博客一文多发平台 OpenWrite 发布!

相关推荐
红尘炼丹客16 小时前
《DeepSeek-OCR: Contexts Optical Compression》速览
人工智能·python·自然语言处理·ocr
☼←安于亥时→❦16 小时前
Playwright 安装与使用
python·playwright
大佬,救命!!!17 小时前
python实现象棋
开发语言·python·学习笔记·pygame·少儿编程·记录成长
棉猴17 小时前
《pygame中Sprite类实现多帧动画》注-通过多张序列帧显示动画2-2
开发语言·python·游戏·游戏程序·pygame
烛阴17 小时前
Python数据可视化:从零开始教你绘制精美雷达图
前端·python
276695829217 小时前
朴朴超市小程序分析
java·python·小程序·node·sign·朴朴超市·sign-v2
重生之我要当编程大佬17 小时前
关于打不开pycharm的解决方法(一)
ide·python·pycharm
深圳佛手17 小时前
AI 编程工具Claude Code 介绍
人工智能·python·机器学习·langchain
apocelipes18 小时前
POSIX兼容系统上read和write系统调用的行为总结
linux·c语言·c++·python·golang·linux编程