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

  • 显式lock table

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


    显式lock
  • 隐式lock table
    mysqldump使用默认参数进行数据导出时,会默认的开启 --lock-tables选项,进而导致导出表上的DML操作等待表级锁。
    说明 对于使用mysqldump导出数据,建议在业务低峰期进行,并且设置 --single-transaction选项进行Innodb引擎表导出,避免出现表级锁等待的情况。

    隐式lock