关于SQL中使用锁的问题,如何正确使用数据库中的乐观锁和悲观锁?
悲观锁:通常是在select语句后增加 for update,数据库在执行查询时将给数据库表增加排他锁(也称写锁,简称X锁);当一条记录被加上排他锁后,其他线程将无法再在该记录上增加排他锁,获取排他锁的事务是可以对数据就行读取和修改。 乐观锁:通常采用版本号机制,如在表中增加版本号字段:version。
乐观锁:依靠表中数据行内的版本戳或时间戳字段来人工管理锁的工作。 悲观锁:使用数据库或对象上提供的锁机制来处理。 同一张表的并发很高,但并发处理同一条数据的冲突几率很低,那就应该使用乐观锁,反之,如果同一张表的并发不高,但同时处理同一条数据的几率很高,就应该使用悲观锁。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。