发布网友 发布时间:2022-04-26 04:34
共2个回答
热心网友 时间:2022-04-29 20:21
当 web 日志中出现行锁超时错误后,很多开发都会找我来排查问题,这里说下问题定位的难点!1. MySQL 本身不会主动记录行锁等待的相关信息,所以无法有效的进行事后分析。2. 锁争用原因有多种,很难在事后判断到底是哪一类问题场景,尤其是事后无法复现问题的时候。3. 找到问题 SQL 后,开发无法有效从代码中挖掘出完整的事务,这也和公司框架-产品-项目的架构有关,需要靠 DBA 事后采集完整的事务 SQL 才可以进行分析。热心网友 时间:2022-04-29 21:39
mysql 不同的存储引擎表示对应的不同的锁机制,如MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。