mysql中的表锁的优化
一、获取锁等待情况
可以通过检查table_locks_waited和table_locks_immediate状态变量来分析系统上的表锁定争夺: mysql> show status like ‘Table%’; +—————————-+———-+ | Variable_name | Value | +—————————-+———-+ | Table_locks_immediate | 105 | | Table_locks_waited | 3 | +—————————-+———-+ 2 rows in set (0.00 sec)
Table_locks_immediate 表示立即释放MySQL表锁数, Table_locks_waited 表示需要等待的MySQL表锁数
如果Table_locks_waited的值比较高,则说明存在着较严重的表级锁争用情况。这时,需要我们对应用做进一步的检查,来确定问题所在。
可以通过检查Innodb_row_lock状态变量来分析系统上的行锁的争夺情况: mysql> show status like ‘innodb_row_lock%’; +—————————————-+———-+ | Variable_name | Value | +—————————————-+———-+ | Innodb_row_lock_current_waits | 0 | | Innodb_row_lock_time | 2001 | | Innodb_row_lock_time_avg | 667 | | Innodb_row_lock_time_max | 845 | | Innodb_row_lock_waits | 3 | +—————————————-+———-+ 5 rows in set (0.00 sec)
By admin
read more