SHOW ENGINE INNODB STATUS\G 是查看 InnoDB 状态最常用方式,重点关注 LOG 段的 LSN、刷盘与检查点状态,结合 Innodb_os_log_written 等状态变量分析写入性能,并通过 TRANSACTIONS 和死锁日志排查锁冲突。
直接执行 SHOW ENGINE INNODB STATUS\G 是查看 InnoDB 运行状态最常用、最有效的方式。它不依赖外部工具,也不需要解析二进制日志,能实时反映缓冲池、事务、锁、日志、检查点等核心模块的内部状况。
输出中 LOG 段落集中展示了重做日志的关键指标:
若发现 Log flushed up to 明显滞后于 Log sequence number,说明 redo log buffer 刷盘慢或磁盘 I/O 压力大;若 Checkpoint age 接近 Max checkpoint age,需警惕日志循环覆盖导致恢复能力下降。
仅看 STATUS 输出不够量化,应配合全局状态变量持续监控:

例如:每秒 Innodb_os_log_written 增长超 10MB,但 Innodb_log_waits 持续上升,建议将 innodb_log_buffer_size 从默认 16MB 提高至 32MB 或 64MB。
TRANSACTIONS 和 LATEST DETECTED DEADLOCK 是排查异常的核心区域:
BUFFER POOL AND MEMORY 段显示缓冲池使用率、命中率(Buffer pool hit rate)、free/flush list 页面数,是判断内存压力的重要依据;ROW OPERATIONS 统计插入、更新、删除的行数,辅助分析负载特征;SEMAPHORES 中的 os_waits 若异常高,可能暗示锁竞争或 CPU 资源瓶颈。
不复杂但容易忽略