开发者社区> 问答> 正文

关于SQL中使用锁的问题,如何正确使用数据库中的乐观锁和悲观锁?

关于SQL中使用锁的问题,如何正确使用数据库中的乐观锁和悲观锁?

展开
收起
晓风瑟瑟 2021-10-13 01:30:09 4413 0
2 条回答
写回答
取消 提交回答
  • 悲观锁:通常是在select语句后增加 for update,数据库在执行查询时将给数据库表增加排他锁(也称写锁,简称X锁);当一条记录被加上排他锁后,其他线程将无法再在该记录上增加排他锁,获取排他锁的事务是可以对数据就行读取和修改。 乐观锁:通常采用版本号机制,如在表中增加版本号字段:version。

    2021-10-16 15:16:27
    赞同 展开评论 打赏
  • 精于基础,广于工具,熟于业务。

    乐观锁:依靠表中数据行内的版本戳或时间戳字段来人工管理锁的工作。 悲观锁:使用数据库或对象上提供的锁机制来处理。 同一张表的并发很高,但并发处理同一条数据的冲突几率很低,那就应该使用乐观锁,反之,如果同一张表的并发不高,但同时处理同一条数据的几率很高,就应该使用悲观锁。

    2021-10-13 09:41:40
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载