Nis*_*hat 6 mysql database locking isolation-level pessimistic-locking
我正在阅读有关数据库锁定(悲观,乐观)机制的内容,
会话 1:
t1:打开事务:
t2:睡眠(3 秒)
t5:updte 用户集 name='x' 其中 id =1
会话 2:t2:更新用户集 name='y' 其中 id=1
我的疑问是: 1. t5 时会发生什么 2. 它是否与隔离级别有任何关系?如果是,不同隔离级别下的行为是什么。3.数据库(mysql,oracle)只做悲观锁吗?
让我以相反的顺序回答你的问题,因为这样我就不必重复某些部分。
optimistic lock,optimistic concurrency control而是使用。悲观锁策略是一种涉及数据库级锁的策略,所有使用事务的 RDBMS 都实现了这种策略 - 包括 mysql 和 innodb。Mysql没有任何数据库级别的乐观并发控制支持。这并不意味着其他 RDBMS 也不支持 OCC。你需要查看他们的手册。
where未更新。隔离级别主要影响事务读取数据的方式,而不是更新数据的方式。
update以及该事务打开的时间。无论哪个会话首先执行更新,都将进行更改并在索引记录上设置排他锁。在第一个事务完成之前,其他事务将无法执行更新。如果第一个事务运行了很长时间,那么另一个事务可能会在等待锁释放时超时。| 归档时间: |
|
| 查看次数: |
3796 次 |
| 最近记录: |