RDS for MySQL InnoDB 表级锁等待-阿里云开发者社区

开发者社区> 阿里云支持与服务> 正文
登录阅读全文

RDS for MySQL InnoDB 表级锁等待

简介: RDS for MySQL InnoDB 表级锁等待   1. 显式 lock table 2. 隐式 lock table 在 RDS MySQL 实例日常使用中,有些情况下会发现出现 InnoDB 表级锁等待的情况,下面列出常见的2个原因。

RDS for 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;

Innodb_tab_lock_01.png

会话 2

Innodb_tab_lock_02.png

会话 3

Innodb_tab_lock_03.png

 

2. 隐式 lock table

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

会话 1

Innodb_tab_lock_06.png

会话 2

Innodb_tab_lock_07.png

会话 3

Innodb_tab_lock_04.png

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: