mysql相关参数查询汇总
一、基础信息与全局配置
1. 查看 MySQL 版本与实例信息
SELECT @@hostname, @@version, @@version_comment;
2. 查看事务隔离级别(非常重要)
-- 当前会话 SELECT @@session.transaction_isolation; -- 全局默认 SELECT @@global.transaction_isolation;
MySQL 默认隔离级别为 REPEATABLE-READ,很多高并发写场景建议改为 READ-COMMITTED。
3. 查看 SQL Mode
SELECT @@sql_mode;
常见值说明:
-
ONLY_FULL_GROUP_BY:严格 group by -
STRICT_TRANS_TABLES:严格事务校验 -
NO_ZERO_DATE / NO_ZERO_IN_DATE:禁止非法日期
二、事务 & 锁相关参数(并发问题重点)
4. 锁等待超时时间
SHOW VARIABLES LIKE 'innodb_lock_wait_timeout';
默认一般是 50 秒,值过小容易导致 Lock wait timeout exceeded。
5. 查看当前锁与死锁信息
SHOW ENGINE INNODB STATUS\G
重点关注:
-
LATEST DETECTED DEADLOCK -
TRANSACTIONS -
LOCK WAIT
三、排序 / 内存 / 临时表(性能 & OOM 高发区)
6. 排序缓冲区(ORDER BY 相关)
SHOW VARIABLES LIKE 'sort_buffer_size';
说明:
-
单位:字节
-
每个连接可能分配
-
太小容易出现:
Out of sort memory, consider increasing server sort buffer size
7. 连接级读缓冲
SHOW VARIABLES LIKE 'read_buffer_size'; SHOW VARIABLES LIKE 'read_rnd_buffer_size';
8. 临时表大小(GROUP BY / DISTINCT / 子查询)
SHOW VARIABLES LIKE 'tmp_table_size'; SHOW VARIABLES LIKE 'max_heap_table_size';
实际生效值 = 二者 较小值
9. 当前排序 / 临时表使用情况(状态指标)
SHOW GLOBAL STATUS LIKE 'Sort%'; SHOW GLOBAL STATUS LIKE 'Created_tmp%';
重点字段:
-
Created_tmp_disk_tables(磁盘临时表,越多越慢) -
Sort_merge_passes(排序溢出)
四、InnoDB 核心配置(写性能 & 稳定性)
10. Buffer Pool(最重要的内存参数)
SHOW VARIABLES LIKE 'innodb_buffer_pool_size'; SHOW VARIABLES LIKE 'innodb_buffer_pool_instances';
11. redo log 相关
SHOW VARIABLES LIKE 'innodb_log_file_size'; SHOW VARIABLES LIKE 'innodb_log_buffer_size'; SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit';
常见值说明:
-
1:最安全(默认) -
2:性能更好,允许极小概率丢失
12. IO 能力评估
SHOW VARIABLES LIKE 'innodb_io_capacity'; SHOW VARIABLES LIKE 'innodb_io_capacity_max';
五、连接与并发情况
13. 最大连接数
SHOW VARIABLES LIKE 'max_connections';
14. 当前连接情况
SHOW GLOBAL STATUS LIKE 'Threads%';
常用指标:
-
Threads_connected -
Threads_running
六、字符集与排序规则(唯一索引/字符串问题)
15. 查看默认字符集
SHOW VARIABLES LIKE 'character_set_server'; SHOW VARIABLES LIKE 'collation_server';
16. 查看表字段字符集
SHOW FULL COLUMNS FROM 表名;
utf8mb4_0900_ai_ci与utf8mb3_general_ci在比较规则上有明显差异,可能影响唯一索引判断。
七、执行计划与 SQL 排查必备
17. 查看执行计划
EXPLAIN SELECT ...;
18. MySQL 8 推荐(更真实)
EXPLAIN ANALYZE SELECT ...;
重点关注:
-
是否
Using filesort -
是否
Using temporary -
是否命中预期索引
八、常用全局排查 SQL 汇总(速抄)
-- 当前用户 & 权限 SELECT USER(), CURRENT_USER(); SHOW GRANTS; -- 当前所有全局变量 SHOW GLOBAL VARIABLES; -- 当前所有状态指标 SHOW GLOBAL STATUS; -- 当前执行中的 SQL SHOW PROCESSLIST;SHOW FULL PROCESSLIST;
九、常见排错经验总结
-
并发 update / 幂等 / 重试场景:优先关注事务隔离级别
-
ORDER BY + LIMIT 也很慢:优先检查索引 + sort_buffer_size
-
线上偶发报错,单条 SQL 很快:考虑并发叠加 + 内存参数
-
同一 SQL 不同库行为不同:先 diff 配置,再看代码
- 本文标签: mysql
- 本文链接: https://www.kxop.top/article/55
- 版权声明: 本文由王开心原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权