Intention shared (IS): Transaction T intends to set S locks on individual rows in table R.
Intention exclusive (IX): Transaction T intends to set X locks on those rows.
The intention locking protocol is as follows:
Before a given transaction can acquire an S lock on a given row, it must first acquire an IS or stronger lock on the table containing that row.
Before a given transaction can acquire an X lock on a given row, it must first acquire an IX lock on the table containing that row.
红色片段意思是,在对一行获得S lock之前,你必须对这个行所在的表能获取IS lock。在对一行获得X lock之前,你必须对这个行所在的表能获取IX lock。
问下:为什么S lock的范围比IS lock的小呢?为什么X lock的范围比IX要小呢?S lock是表共享锁啊 IS lock是表的行锁啊,红色部分是不是写反了,还是我理解错了?
6 个解决方案
#1
· 在假设的事务可以获得对某假定行的S 锁定之前,它必须首先获得对包含该行的表的一个IS 或者更强的锁定。
· 在假设的事务可以获得对某假定行的X 锁定之前,它必须首先获得对包含该行的表的一个IX 锁定。
#2
狼头,你不要贴翻译啊,你贴了翻译,我还是不明白为什么呢?
#3
你能说说具体的原因吗?
#4
这句话有什么问题吗?
楼主可以举个例子说明一下你认为它为什么不正确吗?
楼主可以举个例子说明一下你认为它为什么不正确吗?
#5
我理解的 是IS的锁范围和权力比S lock大?
道理上来说,S是表锁 而IS是行锁,为什么这里的描述里面,给我的意思是IS lock要比S的范围和权力更大呢?
#6
建议举个例子,比如有表A,其中有记录1,2,3,4.。。。。。
#1
· 在假设的事务可以获得对某假定行的S 锁定之前,它必须首先获得对包含该行的表的一个IS 或者更强的锁定。
· 在假设的事务可以获得对某假定行的X 锁定之前,它必须首先获得对包含该行的表的一个IX 锁定。
#2
狼头,你不要贴翻译啊,你贴了翻译,我还是不明白为什么呢?
#3
你能说说具体的原因吗?
#4
这句话有什么问题吗?
楼主可以举个例子说明一下你认为它为什么不正确吗?
楼主可以举个例子说明一下你认为它为什么不正确吗?
#5
我理解的 是IS的锁范围和权力比S lock大?
道理上来说,S是表锁 而IS是行锁,为什么这里的描述里面,给我的意思是IS lock要比S的范围和权力更大呢?
#6
建议举个例子,比如有表A,其中有记录1,2,3,4.。。。。。