首页 » linux » 正文

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 表级锁等待的情况。

 

发表评论