社区
其他
帖子详情
关于封锁协议的问题
cccyan
2006-04-03 01:42:25
请问一级封锁和二级封锁协议的区别在哪里。
我看书上说二级封锁协议其实就是比一级多加了S锁,从例子来看,我认为主要还是由于加了X锁,才避免了读脏数据,和S锁没有什么关系。可是为什么说二级协议避免了都脏数据,我实在是不能理解,请各位大侠给指教一下!
急等答复!谢谢!!!!
...全文
223
回复
打赏
收藏
关于封锁协议的问题
请问一级封锁和二级封锁协议的区别在哪里。 我看书上说二级封锁协议其实就是比一级多加了S锁,从例子来看,我认为主要还是由于加了X锁,才避免了读脏数据,和S锁没有什么关系。可是为什么说二级协议避免了都脏数据,我实在是不能理解,请各位大侠给指教一下! 急等答复!谢谢!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
SQL数据库系统原理(二)———乐观锁与悲观锁、MVCC、范式理论、SQL和NoSQL比较
封锁
的类型以及粒度,两段锁
协议
,隐式和显式锁定
封锁
类型有两种:读写锁和意向锁 读写锁分类读锁(s锁)和写锁(x锁)。 对象加了写锁,可以更新与读取,不能加其他锁。 对象加了读锁,只能读取,可以加读锁 意向锁 新增了IS锁和IX锁,都是表锁,分别表达加S/X锁的意愿,有利于支持多粒度。 补充:粒度有两种:表锁、行锁,行锁开销大。 两端锁
协议
:加锁和解锁分两阶段执行,为事务可串行化调度提供支持 隐式和显式锁定:MySQL的InnoDB引擎采用两端锁
协议
,自动加锁,属于隐式锁定,同时也可以显式锁定 乐观锁与悲观锁 乐观锁和悲观锁都是为了事务的并发控制。 乐观锁 悲观锁 目的 事务
数据库三级
封锁
协议
和两段锁
协议
区别
三级
封锁
协议
用于解决修改丢失、不可重复读和读脏数据
问题
,解决
问题
的焦点是给数据库对象何时加锁、加什么样的锁 一级
封锁
协议
:事务T在修改数据R之前必须对其加X锁,解决修改丢失
问题
二级
封锁
协议
:在一级
封锁
协议
的基础上,事务T在读取数据R前,必须对其加S锁,读完后即可释放,解决不可重复读
问题
三级
封锁
协议
:在一级
封锁
协议
的基础上,事务T在读取数据R前,必须对其加S锁,直到事务结束方可释放,解决读脏数据
问题
三级
封锁
协议
不能保证并发操作下事务最终的执行结果和这些事务串行的某个执行结果一致(如有事务A和事务B,串行
并发控制之
封锁
协议
什么是
封锁
协议
在运用X锁和S锁对数据对象加锁时,需要约定一些规则,这些规则为
封锁
协议
(Locking Protocol)。 何时申请X锁或S锁 持锁时间 何时释放 对
封锁
方式规定不同的规则,就形成了各种不同的
封锁
协议
,它们分别在不同的程度上为并发操作的正确调度提供一定的保证。 三级
封锁
协议
1.一级
封锁
协议
2.二级
封锁
协议
3.三级
封锁
协议
一级
封锁
协议
一级
封锁
协议
事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。 正常结束(COMMIT) 非正常结束(ROLLBACK) 一级
封锁
协议
可防
数据库的一级、二级、三级
封锁
协议
一、背景 在运用X锁和S锁对数据对象加锁时,还需要约定一些规则 ,例如何时申请X锁或S锁、持锁时间、何时释放等。称这些规则为
封锁
协议
(Locking Protocol)。对
封锁
方式规定不同的规则,就形成了各种不同的
封锁
协议
。不同的
封锁
协议
,在不同的程度上为并发操作的正确调度提供一定的保证。 二、三种
封锁
协议
1.一级
封锁
协议
一级
封锁
协议
是:事务T在修改数据R之前必须先对其加X锁,直到事束才释放。...
数据库隔离级别[对应
封锁
协议
]
1.读未提交(read uncommit) 一级
封锁
协议
(读取数据的时候不加锁,更新的时候整个加X锁) b事物执行到一半,a事物不检测锁直接读取,结果b事物回滚了,导致a事物读出了一个错的结果,这就是脏读。 2.读已提交(read committed) 二级
封锁
协议
(读取数据的时候加S锁,更新的时候加X锁) a事物每次读取的时候都会尝试获取s锁,如果b事物在更新,则a阻塞等待b事物释放。...
其他
249
社区成员
6,554
社区内容
发帖
与我相关
我的任务
其他
其他产品/厂家
复制链接
扫一扫
分享
社区描述
其他产品/厂家
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章