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

相关推荐
前端若水4 小时前
开发环境准备:Python、Node.js、Docker与Git
python·docker·node.js
woxihuan1234564 小时前
HTML怎么构建课程学习仪表盘_HTML进度环+任务列表【教程】
jvm·数据库·python
2401_884454154 小时前
mysql数据库执行全量备份影响业务_利用xtrabackup实现无锁备份
jvm·数据库·python
AI玫瑰助手4 小时前
Python流程控制:for循环遍历字符串列表字典
android·java·python
啦啦啦_99994 小时前
2. PyTorch框架
人工智能·pytorch·python
m0_631529824 小时前
SQL复杂数据聚合_嵌套子查询与GROUP BY配合
jvm·数据库·python
2301_809204704 小时前
Golang如何做Clean Architecture_Golang整洁架构教程【详解】
jvm·数据库·python
m0_624578594 小时前
PHP源码能否在无盘工作站运行_网络启动硬件要求【说明】
jvm·数据库·python
战南诚4 小时前
Flask中的URL ——url_for() 与 自定义动态路由过滤器
后端·python·flask
yexuhgu4 小时前
CSS Grid布局如何实现项目重叠效果_利用z-index与grid-area实现
jvm·数据库·python