MySQL实战(七):日常运维 SQL汇总

一、高频必用(日常巡检)

1. 查看连接

sql

复制代码
SHOW FULL PROCESSLIST;

结果:Id,User,Host,db,Command,Time,State,Info版本:所有版本通用

2. 查看 MySQL 版本

sql

复制代码
SELECT VERSION();

结果:8.0.36版本:所有版本通用

3. 当前连接数

sql

复制代码
SHOW STATUS LIKE 'Threads_connected';

结果:128版本:所有版本通用

4. 最大连接数

sql

复制代码
SHOW VARIABLES LIKE 'max_connections';

结果:1000版本:所有版本通用

5. 数据库列表

sql

复制代码
SHOW DATABASES;

结果:mysql,testdb,sys版本:所有版本通用

6. 表结构

sql

复制代码
DESC 表名;

结果:字段、类型、KEY、NULL版本:所有版本通用

7. 建表语句

sql

复制代码
SHOW CREATE TABLE 表名;

结果:完整 CREATE TABLE版本:所有版本通用

8. 表索引

sql

复制代码
SHOW INDEX FROM 表名;

结果:索引名、字段、是否唯一版本:所有版本通用

9. 所有用户

sql

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

结果:root@%,app@192.168.%版本:所有版本通用

10. 查看用户权限

sql

复制代码
SHOW GRANTS FOR 'user'@'%';

结果:GRANT SELECT ON . 版本:所有版本通用

11. InnoDB 状态(死锁 / 事务)

sql

复制代码
SHOW ENGINE INNODB STATUS\G

结果:LATEST DETECTED DEADLOCK版本:所有版本通用

12. 从库状态

sql

复制代码
SHOW SLAVE STATUS\G

结果:IO_Running:Yes SQL_Running:Yes版本:5.7 默认;8.0 改用 SHOW REPLICA STATUS

13. 主库 binlog 位置

sql

复制代码
SHOW MASTER STATUS;

结果:mysql-bin.000123,Position 154版本:所有版本通用

14. 慢查询开关

sql

复制代码
SHOW VARIABLES LIKE 'slow_query_log';

结果:ON/OFF版本:所有版本通用

15. 慢查询阈值

sql

复制代码
SHOW VARIABLES LIKE 'long_query_time';

结果:1.000000版本:所有版本通用

16. 各库空间大小

sql

复制代码
SELECT table_schema,SUM(data_length+index_length)/1024/1024 total_mb FROM information_schema.TABLES GROUP BY table_schema ORDER BY total_mb DESC;

结果:testdb | 2560MB版本:所有版本通用

17. 单表空间

sql

复制代码
SELECT table_name,data_length/1024/1024 data_mb,index_length/1024/1024 index_mb FROM information_schema.TABLES WHERE table_schema='库' AND table_name='表';

结果:user | 512 | 128版本:所有版本通用

18. kill 连接

sql

复制代码
KILL 1234;

结果:Query OK版本:所有版本通用

19. 运行时长

sql

复制代码
SHOW STATUS LIKE 'Uptime';

结果:86400(秒)版本:所有版本通用

20. 当前数据库

sql

复制代码
SELECT DATABASE();

结果:testdb版本:所有版本通用

21. 运行中的 SQL

sql

复制代码
SELECT * FROM information_schema.PROCESSLIST WHERE Command!='Sleep';

结果:正在执行的 SQL版本:所有版本通用

22. 按 IP 统计连接

sql

复制代码
SELECT SUBSTRING_INDEX(HOST,':',1) ip,COUNT(*) conn FROM information_schema.PROCESSLIST GROUP BY ip ORDER BY conn DESC;

结果:192.168.1.10 | 120版本:所有版本通用

23. 批量 kill 空闲连接

sql

复制代码
SELECT CONCAT('KILL ',id,';') FROM information_schema.PROCESSLIST WHERE Command='Sleep' AND TIME>300;

结果:KILL 123;版本:所有版本通用

24. 运行中事务

sql

复制代码
SELECT * FROM information_schema.INNODB_TRX\G

结果:trx_id,trx_state,trx_query版本:5.7/8.0 通用

25. 锁等待

sql

复制代码
SELECT * FROM performance_schema.data_lock_waits;

结果:阻塞关系版本:MySQL 8.0 + 专用

26. 锁详情

sql

复制代码
SELECT * FROM performance_schema.data_locks;

结果:锁类型、锁范围版本:MySQL 8.0 + 专用

27. 长事务 >60s

sql

复制代码
SELECT * FROM information_schema.INNODB_TRX WHERE TIME_TO_SEC(trx_duration)>60;

结果:长事务列表版本:5.7/8.0 通用

28. 行锁状态

sql

复制代码
SHOW STATUS LIKE 'Innodb_row_lock%';

结果:等待次数、等待时间版本:所有版本通用

29. 事务隔离级别

sql

复制代码
SELECT @@transaction_isolation;

结果:REPEATABLE-READ版本:8.0 专用;5.7 用 @@tx_isolation

30. QPS 查询总数

sql

复制代码
SHOW STATUS LIKE 'Queries';

结果:1234567版本:所有版本通用

31. TPS

sql

复制代码
SHOW STATUS LIKE 'Com_commit';
SHOW STATUS LIKE 'Com_rollback';

结果:提交、回滚次数版本:所有版本通用

32. 脏页数量

sql

复制代码
SHOW STATUS LIKE 'Innodb_buffer_pool_pages_dirty';

结果:128版本:所有版本通用

33. 磁盘临时表

sql

复制代码
SHOW STATUS LIKE 'Created_tmp_disk_tables';

结果:1024版本:所有版本通用

34. 文件排序

sql

复制代码
SHOW STATUS LIKE 'Sort_merge_passes';

结果:512版本:所有版本通用

35. 执行计划

sql

复制代码
EXPLAIN SELECT * FROM 表 WHERE 条件;

结果:type、key、rows、Extra版本:所有版本通用

36. 字符集

sql

复制代码
SHOW VARIABLES LIKE 'character_set%';

结果:utf8mb4版本:所有版本通用

37. 数据目录

sql

复制代码
SHOW VARIABLES LIKE 'datadir';

结果:/var/lib/mysql版本:所有版本通用

38. 端口

sql

复制代码
SHOW VARIABLES LIKE 'port';

结果:3306版本:所有版本通用

39. 是否开启 binlog

sql

复制代码
SHOW VARIABLES LIKE 'log_bin';

结果:ON/OFF版本:所有版本通用

40. binlog 格式

sql

复制代码
SHOW VARIABLES LIKE 'binlog_format';

结果:ROW版本:所有版本通用

41. 错误日志路径

sql

复制代码
SHOW VARIABLES LIKE 'log_error';

结果:/var/log/mysqld.log版本:所有版本通用

42. 缓冲池大小

sql

复制代码
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';

结果:8G版本:所有版本通用

43. 表最后更新时间

sql

复制代码
SELECT TABLE_NAME,UPDATE_TIME FROM information_schema.TABLES WHERE TABLE_SCHEMA='库';

结果:user | 2026-03-25 10:00:00版本:所有版本通用

44. 检查表损坏

sql

复制代码
CHECK TABLE 表名;

结果:status=OK版本:所有版本通用

45. 临时开启慢查询

sql

复制代码
SET GLOBAL slow_query_log=1;
SET GLOBAL long_query_time=1;

结果:Query OK版本:所有版本通用

46. 当前登录用户

sql

复制代码
SELECT USER();

结果:root@localhost版本:所有版本通用

47. 打开表数量

sql

复制代码
SHOW STATUS LIKE 'Open_tables';

结果:256版本:所有版本通用

48. 运行线程数

sql

复制代码
SHOW STATUS LIKE 'Threads_running';

结果:8版本:所有版本通用

49. redo log 大小

sql

复制代码
SHOW VARIABLES LIKE 'innodb_log_file_size';

结果:1G版本:所有版本通用

50. 事务刷盘策略

sql

复制代码
SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit';

结果:1版本:所有版本通用


二、中频常用(故障定位,30 条)

51. 更新统计信息

sql

复制代码
ANALYZE TABLE 表名;

结果:OK版本:所有版本通用

52. 回收表碎片

sql

复制代码
OPTIMIZE TABLE 表名;

结果:OK版本:所有版本通用

53. 无主键表检查

sql

复制代码
SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('mysql','sys','information_schema','performance_schema') AND TABLE_TYPE='BASE TABLE' AND TABLE_NAME NOT IN (SELECT TABLE_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE CONSTRAINT_NAME='PRIMARY');

结果:无主键表清单版本:所有版本通用

54. 表碎片大小

sql

复制代码
SELECT TABLE_NAME,DATA_FREE/1024/1024 free_mb FROM information_schema.TABLES WHERE TABLE_SCHEMA='库';

结果:128MB版本:所有版本通用

55. binlog 文件列表

sql

复制代码
SHOW BINARY LOGS;

结果:mysql-bin.000123版本:所有版本通用

56. 查看复制线程

sql

复制代码
SHOW PROCESSLIST WHERE User='repl';

结果:复制状态版本:所有版本通用

57. 跳过复制错误

sql

复制代码
STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;

结果:OK版本:5.7 专用;8.0 用 REPLICA

58. 半同步状态

sql

复制代码
SHOW STATUS LIKE 'Rpl_semi_sync%';

结果:ON/OFF版本:所有版本通用

59. GTID 模式

sql

复制代码
SHOW VARIABLES LIKE 'gtid_mode';

结果:ON版本:5.7 + 支持

60. 空闲连接超时

sql

复制代码
SHOW VARIABLES LIKE 'wait_timeout';

结果:28800版本:所有版本通用

61. 交互超时

sql

复制代码
SHOW VARIABLES LIKE 'interactive_timeout';

结果:28800版本:所有版本通用

62. InnoDB 页大小

sql

复制代码
SHOW VARIABLES LIKE 'innodb_page_size';

结果:16384版本:所有版本通用

63. 双写缓冲

sql

复制代码
SHOW VARIABLES LIKE 'innodb_doublewrite';

结果:ON版本:所有版本通用

64. 存储引擎列表

sql

复制代码
SHOW ENGINES;

结果:InnoDB DEFAULT版本:所有版本通用

65. 库表数量

sql

复制代码
SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA='库';

结果:120版本:所有版本通用

66. 未使用索引表

sql

复制代码
SELECT * FROM sys.schema_unused_indexes;

结果:未使用索引版本:5.7/8.0 通用(需安装 sys 库)

67. 慢查询日志路径

sql

复制代码
SHOW VARIABLES LIKE 'slow_query_log_file';

结果:/var/lib/mysql/slow.log版本:所有版本通用

68. 连接使用内存

sql

复制代码
SHOW STATUS LIKE 'Threads_created';

结果:1024版本:所有版本通用

69. 表缓存命中率

sql

复制代码
SHOW STATUS LIKE 'Table_open_cache_hits';

结果:100000版本:所有版本通用

70. 锁定的表

sql

复制代码
SHOW OPEN TABLES WHERE In_use>0;

结果:被锁定的表版本:所有版本通用

71. 主从延迟

sql

复制代码
SHOW SLAVE STATUS\G

结果:Seconds_Behind_Master: 10版本:5.7;8.0 用 REPLICA

72. 查看连接限制

sql

复制代码
SHOW VARIABLES LIKE 'max_user_connections';

结果:100版本:所有版本通用

73. 排序缓存

sql

复制代码
SHOW VARIABLES LIKE 'sort_buffer_size';

结果:2M版本:所有版本通用

74. 连接缓存

sql

复制代码
SHOW VARIABLES LIKE 'join_buffer_size';

结果:2M版本:所有版本通用

75. 只读状态

sql

复制代码
SHOW VARIABLES LIKE 'read_only';

结果:OFF版本:所有版本通用

76. 二进制日志索引

sql

复制代码
SHOW VARIABLES LIKE 'log_bin_index';

结果:/var/lib/mysql/mysql-bin.index版本:所有版本通用

77. 临时表大小

sql

复制代码
SHOW VARIABLES LIKE 'tmp_table_size';

结果:64M版本:所有版本通用

78. 最大临时表

sql

复制代码
SHOW VARIABLES LIKE 'max_heap_table_size';

结果:64M版本:所有版本通用

79. 自动提交

sql

复制代码
SHOW VARIABLES LIKE 'autocommit';

结果:ON版本:所有版本通用

80. 查看所有状态

sql

复制代码
SHOW GLOBAL STATUS;

结果:全局状态版本:所有版本通用


三、低频专用(维护优化,25 条)

81. 创建用户

sql

复制代码
CREATE USER 'ops'@'%' IDENTIFIED BY 'pwd';

结果:OK版本:8.0 要求密码强策略;5.7 宽松

82. 授权全库权限

sql

复制代码
GRANT ALL ON 库.* TO 'user'@'%';

结果:OK版本:所有版本通用

83. 授权只读

sql

复制代码
GRANT SELECT ON *.* TO 'read'@'%';

结果:OK版本:所有版本通用

84. 授权复制权限

sql

复制代码
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

结果:OK版本:所有版本通用

85. 刷新权限

sql

复制代码
FLUSH PRIVILEGES;

结果:OK版本:所有版本通用

86. 修改密码

sql

复制代码
ALTER USER 'root'@'%' IDENTIFIED BY 'newpwd';

结果:OK版本:8.0 专用;5.7 用 SET PASSWORD

87. 删除用户

sql

复制代码
DROP USER 'test'@'%';

结果:OK版本:所有版本通用

88. 创建索引

sql

复制代码
CREATE INDEX idx_xx ON 表(字段);

结果:OK版本:所有版本通用

89. 删除索引

sql

复制代码
DROP INDEX idx_xx ON 表;

结果:OK版本:所有版本通用

90. 启动从库

sql

复制代码
START SLAVE;

结果:OK版本:5.7;8.0 用 START REPLICA

91. 停止从库

sql

复制代码
STOP SLAVE;

结果:OK版本:5.7;8.0 用 STOP REPLICA

92. 重置从库

sql

复制代码
RESET SLAVE;

结果:OK版本:5.7;8.0 用 RESET REPLICA

93. 清理 binlog

sql

复制代码
PURGE BINARY LOGS TO 'mysql-bin.000100';

结果:OK版本:所有版本通用

94. 刷新日志

sql

复制代码
FLUSH LOGS;

结果:OK版本:所有版本通用

95. 刷新表

sql

复制代码
FLUSH TABLES;

结果:OK版本:所有版本通用

96. 开启只读

sql

复制代码
SET GLOBAL read_only=1;
SET GLOBAL super_read_only=1;

结果:OK版本:super_read_only 8.0 + 支持

97. 关闭只读

sql

复制代码
SET GLOBAL read_only=0;

结果:OK版本:所有版本通用

98. 查看 undo 日志

sql

复制代码
SHOW VARIABLES LIKE 'innodb_undo_log_truncate';

结果:ON版本:5.7 + 支持

99. 查看同步 IO 状态

sql

复制代码
SHOW STATUS LIKE 'Innodb_data_reads';

结果:123456版本:所有版本通用

100. 查看同步写入

sql

复制代码
SHOW STATUS LIKE 'Innodb_data_writes';

结果:789000版本:所有版本通用


四、高危 / 极少用(割接 / 故障,22 条)

101. 强制 kill 长时间查询

sql

复制代码
SELECT CONCAT('KILL ',id,';') FROM information_schema.PROCESSLIST WHERE TIME>600;

结果:批量 kill 语句版本:所有版本通用

102. 查看密码策略

sql

复制代码
SHOW VARIABLES LIKE 'validate_password%';

结果:密码规则版本:8.0 默认开启;5.7 需插件

103. 查看用户锁定状态

sql

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

结果:UNLOCKED版本:8.0 专用

104. 锁定用户

sql

复制代码
ALTER USER 'test'@'%' ACCOUNT LOCK;

结果:OK版本:8.0 专用

105. 解锁用户

sql

复制代码
ALTER USER 'test'@'%' ACCOUNT UNLOCK;

结果:OK版本:8.0 专用

106. 密码过期

sql

复制代码
ALTER USER 'test'@'%' PASSWORD EXPIRE;

结果:OK版本:8.0 专用

107. 查看表空间

sql

复制代码
SELECT * FROM information_schema.INNODB_TABLESPACES;

结果:表空间信息版本:5.7 + 支持

108. 查看缓冲池状态

sql

复制代码
SHOW STATUS LIKE 'Innodb_buffer_pool_wait_free';

结果:0(正常)版本:所有版本通用

109. 查看日志缓冲区

sql

复制代码
SHOW VARIABLES LIKE 'innodb_log_buffer_size';

结果:16M版本:所有版本通用

110. 查看 IO 线程

sql

复制代码
SHOW VARIABLES LIKE 'innodb_read_io_threads';

结果:4版本:所有版本通用

111. 查看写入线程

sql

复制代码
SHOW VARIABLES LIKE 'innodb_write_io_threads';

结果:4版本:所有版本通用

112. 查看主库 UUID

sql

复制代码
SHOW VARIABLES LIKE 'server_uuid';

结果:uuid 串版本:5.7 + 支持

113. 查看执行计划详情

sql

复制代码
EXPLAIN ANALYZE SELECT * FROM 表;

结果:运行时统计版本:MySQL 8.0.18 + 专用

114. 查看系统变量

sql

复制代码
SHOW VARIABLES;

结果:全部配置版本:所有版本通用

115. 查看中继日志

sql

复制代码
SHOW RELAYLOG EVENTS;

结果:中继日志内容版本:所有版本通用

116. 查看 binlog 内容

sql

复制代码
SHOW BINLOG EVENTS IN 'mysql-bin.000123';

结果:binlog 记录版本:所有版本通用

117. 查看连接使用 CPU

sql

复制代码
SELECT * FROM performance_schema.threads;

结果:线程 CPU版本:8.0 专用

118. 查看内存使用

sql

复制代码
SELECT * FROM sys.memory_global_total;

结果:总内存版本:8.0 专用

119. 查看连接数历史峰值

sql

复制代码
SHOW STATUS LIKE 'Max_used_connections';

结果:历史最大连接版本:所有版本通用

120. 查看 redo log 状态

sql

复制代码
SHOW STATUS LIKE 'Innodb_log_waits';

结果:0(正常)版本:所有版本通用

121. 查看事务数

sql

复制代码
SHOW STATUS LIKE 'Innodb_trx_rseg_history_len';

结果:历史链表长度版本:所有版本通用

122. 查看自增 ID 耗尽风险

sql

复制代码
SELECT table_schema,table_name,column_name,data_type,MAX(column_name) max_id FROM 库.表 GROUP BY column_name;

结果:ID 使用情况版本:所有版本通用


最终版手册核心说明

  1. 通用:MySQL 5.6 / 5.7 / 8.0 都能用
  2. 5.7 专属SLAVE 系列主从命令
  3. 8.0 专属REPLICAEXPLAIN ANALYZEdata_locks、用户锁定
相关推荐
小猿姐11 小时前
MySQL Top 10 热点问题 AI 运维实战:从内核诊断到云原生运维
mysql·云原生·aiops
云技纵横21 小时前
Gap Lock 死锁实战:5 秒在本地复现 MySQL 间隙锁死锁
后端·mysql
无响应de神21 小时前
三、用户与权限管理
数据库·mysql
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工2 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智2 天前
ARP代理--工作原理
运维·网络·arp·arp代理
ApacheSeaTunnel2 天前
实战演示 | 基于 Apache SeaTunnel 与 Apache DolphinScheduler 实现 MySQL 到 Doris 离线定时增量同步
大数据·mysql·开源·doris·数据集成·seatunnel·数据同步