MySQL Status Innodb_row_lock_waits 数据库状态作用意思及如何正确
本站中文解释
MySQL status变量包括多个状态参数,用于提供MySQL服务器的运行状态信息。其中Innodb_row_lock_waits变量用于表示当前事务排它锁等待数量,主要有以下用途:
1、 用于衡量系统性能:如果单个事务等待排它锁的次数过高,则可能说明系统性能较差。
2、 用于定位故障:如果Innodb_row_lock_waits变量一直处于非常高的状态,则可能表明存在性能问题,可针对此进行故障排除。
Innodb_row_lock_waits的设置和查询非常简单,它是一个只读变量,只能进行查询,无法设置。可以通过以下语句查询:
select * from information_schema.global_status where variable_name=‘innodb_row_lock_waits’
可以从查询的结果中查看,Innodb_row_lock_waits的状态。
同时可以通过InnoDB的监控报警功能,当Innodb_row_lock_waits变量出现不正常值时,进行报警。可以设置如下报警条件:
set global innodb_monitor_enable=’all’;
set global innodb_monitor_reset=’all’;
set global innodb_monitor_enable=’LOCK_waittime’;
set global innodb_monitor_waittime_warning_threshold=100000000;
以上设置会在Innodb_row_lock_waits变量的状态超过10亿时报警。