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 发布!

相关推荐
yz_518 Nemo6 分钟前
Django项目实战
后端·python·django
mengyoufengyu15 分钟前
python3:线程管理进程
开发语言·python
西猫雷婶32 分钟前
python学智能算法(十二)|机器学习朴素贝叶斯方法初步-拉普拉斯平滑计算条件概率
开发语言·人工智能·python·深度学习·机器学习·矩阵
GuokLiu1 小时前
250618-通过Artifacts功能集成Open-WebUI与Gradio
python·gradio·openwebui
alpszero2 小时前
使用YOLO模型进行线程安全推理
python·yolo
cainiao0806052 小时前
基于Python的气象数据分析及可视化研究
开发语言·python·数据分析
Q_Q19632884752 小时前
python大学校园旧物捐赠系统
开发语言·spring boot·python·django·flask·node.js·php
onceco2 小时前
使用duckduckgo_search python api 进行免费且不限次数的搜索
开发语言·python·搜索引擎
27划流星雨_2 小时前
【python】typing用法
linux·windows·python
尤物程序猿2 小时前
深入理解ArrayList:从Java原生实现到手写一个ArrayList
java·数据结构·python