MySQL InnoDB表级锁等待

作者:

1. 显式 lock table

2. 隐式 lock table


在 RDS MySQL 实例日常使用中,有些情况下会发现出现 Innodb 表级锁等待的情况,下面列出常见的2个原因。

 1. 显式 lock table

执行了 lock tables tab_name read; 导致 DML 会话等待在表的表级锁上。

会话 1

lock tables tab_name read;

会话 2

会话 3

 

2. 隐式 lock table

mysqldump 使用默认参数进行数据导出时,会默认的开启 –lock-tables 选项,进而导致导出表上的DML操作等待在表级锁上。

会话 1

会话 2

会话 3

对于 mysqldump 方式的导出,建议在业务低峰期进行导出,并且设置 –single-transaction 选项进行 Innodb 引擎表导出,避免出现 Innodb 表级锁等待的情况。

 

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Copyright © 2014-2025 奋奋的愤愤 | 京ICP备14029030号-1