当前位置:Gxlcms > 数据库问题 > MySQL中lock与latch的区分

MySQL中lock与latch的区分

时间:2021-07-01 10:21:17 帮助过:4人阅读

SHOW ENGINE INNODB MUTEX; +--------+-------------------+-------------+ | Type | Name | Status | +--------+-------------------+-------------+ | InnoDB | dict0dict.cc:1057 | os_waits=2 | | InnoDB | log0log.cc:844 | os_waits=1 | | InnoDB | fil0fil.cc:1690 | os_waits=1 | | InnoDB | dict0dict.cc:1066 | os_waits=3 | | InnoDB | log0log.cc:907 | os_waits=11 | +--------+-------------------+-------------+ 5 rows in set (4.14 sec)

在DEBUG版本下,通过SHOW ENGINE INNODB MUTEX 可以看到latch的更多信息

技术分享

通过上述例子可以看到,type显示的总是InnoDB,列Name显示的是latch的信息及所在的源码位置(行数)。列Status比较复杂,在DEBUG模式下,除了显示os_waits,也会显示count、spin_waits、spin_rounds、 os_yields、os_wait_times等信息。

技术分享

相对于latch来看,lock信息就显得直观了。可以通过SHOW ENGINE INNODB STATUS 及information_schema架构下的INNODB_TRX、INNODB_LOCKS、INNODB_LOCK_WAITS来观察锁的信息 。

 

MySQL中lock与latch的区分

标签:

人气教程排行