前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库锁?

数据库锁?

作者头像
kdyonly
发布2023-03-03 19:02:16
1750
发布2023-03-03 19:02:16
举报
文章被收录于专栏:个人编程笔记个人编程笔记

浏览量 1

锁分类、:从数据库的角度分为:排他锁,共享锁,更新锁;从程序员的角度分为:乐观锁,悲观锁。

乐观锁:乐观的认为在获取数据的时候,其他人不会修改数据,所以不会上锁,只是更新的时候会判断这个数据是不是更新了,可以使用版本号机制。

悲观锁:具有强烈的独占性和排他性,认为在获取数据的时候,其他人会修改数据,对数据进行上锁,当有其他人拿数据的时候就会进行阻塞,直到它获得锁,会造成性能的开销。

共享锁(S锁):也叫读锁,用于所有只读数据的操作。性质:1.多个事务可封锁同一个共享页;2.锁住之后,任何事务不能够修改;3.读取完毕之后,立即对该页释放锁。

排他锁(X锁):也叫写锁,一个事务对数据加了排他锁之后,其他任何事务不能对其加任何锁了。性质:1.只允许一个事务进行加锁;2.其他事务必须等到排他锁释放后才能对数据进行操作;3.写锁需要等到事务结束的时候才能释放。

更新锁(U锁):在修改的初始阶段可对数据使用更新锁,避免使用共享锁产生的死锁现象。性质:1.用来预定要对此页施加X锁,它允许其他事务读,但不允许再施加U锁或X锁;2. 当被读取的页要被更新时,则升级为X锁;3. U锁一直到事务结束时才能被释放。

行锁:锁的作用范围是行级别。

表锁:锁的作用范围是表级别。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档