阻塞
2020-05-07 本文已影响0人
lsh的学习笔记
含义
因为不同锁之间的兼容性关系,在有些时刻一个事务中的锁需要等待另一个事务中的锁释放它所占用的资源,这就是阻塞。
目的
阻塞并不是一件坏事,其是:为了确保事务可以并发且正常地运行。
在InnoDB存储引擎中:
-
innodb_lock_wait_timeout用来控制等待的时间(默认是50秒),是动态的,可以在MySQL数据库运行时进行调整。 -
innodb_rollback_on_timeout用来设定是否在等待超时时对进行中的事务进行回滚操作(默认是OFF,代表不回滚),是静态的,不可在启动时进行修改。
注意
-
需要
牢记的是,在默认情况下InnoDB存储引擎不会回滚超时引发的错误异常。 -
其实InnoDB存储引擎在
大部分情况下都不会对异常进行回滚。。而这是十分危险的状态,因此用户必须判断是否需要COMMIT还是ROLLBACK,之后再进行下一步的操作。