mysql运维语句

发布于:2025-07-01 ⋅ 阅读:(22) ⋅ 点赞:(0)

1、检查表空间状态,包括行数、数据大小以及索引大小

SELECT 
    table_schema AS 'Database',
    table_name AS 'Table',
    engine AS 'Engine',
    table_rows AS 'Rows',
    round(data_length/1024/1024,2) AS 'Data Length (MB)',
    round(index_length/1024/1024,2) AS 'Index Length (MB)'
FROM 
    information_schema.tables
WHERE 
    engine = 'InnoDB';

2、显示 InnoDB 状态,包括缓冲池、事务、锁等信息

SHOW ENGINE INNODB STATUS;

3、查看 MySQL 的变量设置

SHOW GLOBAL VARIABLES LIKE '%innodb%';

4、查看当前正在运行的线程,这条命令显示了当前连接到 MySQL 服务器的所有线程及其执行的查询。这对于识别长时间运行的查询或锁问题很有用。

SHOW FULL PROCESSLIST;

5、查看 MySQL 服务器的二进制日志状态

SHOW MASTER STATUS;

6、连接相关

(1)统计当前连接数

SELECT COUNT(*) FROM information_schema.PROCESSLIST;

(2)查看最大允许连接数

SHOW VARIABLES LIKE 'max_connections';

(3)监控连接相关状态变量

SHOW GLOBAL STATUS LIKE 'Connections';
SHOW GLOBAL STATUS LIKE 'Threads_connected';
SHOW GLOBAL STATUS LIKE 'Aborted_connects';
  • Connections: 自服务器启动以来收到的连接请求次数。
  • Threads_connected: 当前打开的连接数量。
  • Aborted_connects: 尝试连接到服务器失败的次数。

7、检查运行时间较长的sql

这段查询尝试结合语句历史记录和阶段当前事件,以识别出执行时间较长的查询。

SELECT 
    t1.THREAD_ID, 
    t1.SQL_TEXT, 
    t2.EVENT_ID, 
    t2.EVENT_NAME, 
    t2.TIMER_WAIT,
    t2.WORK_COMPLETED,
    t2.WORK_ESTIMATED
FROM 
    performance_schema.events_statements_history AS t1
JOIN 
    performance_schema.events_stages_current AS t2 ON t1.THREAD_ID = t2.THREAD_ID
WHERE 
    t1.SQL_TEXT IS NOT NULL
ORDER BY 
    t2.TIMER_WAIT DESC;

查找正在执行语句的耗时 

SELECT 
    t.thread_id, 
    t.processlist_user, 
    t.processlist_host, 
    s.sql_text, 
    s.timer_wait
FROM 
    performance_schema.threads AS t
JOIN 
    performance_schema.events_statements_current AS s ON t.thread_id = s.thread_id
WHERE 
    s.sql_text IS NOT NULL
ORDER BY 
    s.timer_wait DESC;

慢查询日志参数

SHOW VARIABLES LIKE 'slow_query_log%';