【发布时间】:2015-06-30 10:45:57
【问题描述】:
我了解可重复读取事务隔离级别的含义。
在可重复读取事务期间,任何事务在我的事务开始后提交的数据都不会被我的事务看到。
但是我很难理解它是如何在 sql server 端实际实现的。是不是在每个事务开始时都会为该特定事务拍摄数据库快照并留出空间?
如果是这样,那么如果在任何时间点启动多个可重复读取事务,那么内存资源量会很大吗?
也有人可以阐明共享/独占锁在可重复读取中的作用 ?
【问题讨论】:
-
MySQL是开源的,大家可以查一下。
-
在可重复读取的情况下,它表示它不会释放共享锁,直到事务结束。什么是共享锁?假设表中有 10 行。每一行都有共享锁吗?如果锁被占用了,在这个事务完成之前,任何其他事务怎么可能提交?
标签: mysql