• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
gaohuan30
博客园    首页    新随笔    联系   管理    订阅  订阅
MySQL锁(阻塞)

  因为不同锁之间的兼容性关系,在有些时刻一个事务中的锁需要等待另一个事务中的锁释放它所占用的资源,这就是阻塞。

  阻塞并不是一件坏事,其实为了确保事务可以并发且正常地运行。

  在InnoDB存储引擎中,

    参数innodb_lock_wait_timeout 用来控制等待时间(默认50秒); 动态参数,可随时调整

    innodb_rollback_on_timeout 用来设置是否在等待超时时对进行中地事务进行回滚操作(默认是OFF,代表不回滚);静态地,不可在启动时进行修改

  默认情况下InnoDB存储引擎不会回滚超时引发地错误异常。

  innodb_rollback_on_timeout=on的情况下,整个事务已经自动回滚,不会再自动创建事务。

 

  所以不管是5.6的版本还是5.7的版本,innodb_rollback_on_timeout最好设置成ON,这样可以避免破坏事务原子性,保证数据一致性。唯一的区别是在5.7版本下需要自己手动开启一个事务。

 

posted on 2020-02-15 20:18  gaohuan30  阅读(359)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3